Re: [Ext2-devel] [PATCH] concurrent block allocation for ext2 against 2.5.64

Alex Tomas (bzzz@tmi.comex.ru)
13 Mar 2003 21:43:05 +0300


fs/attr.c:
if (ia_valid & ATTR_SIZE) {
if (attr->ia_size == inode->i_size) {
if (ia_valid == ATTR_SIZE)
goto out; /* we can skip lock_kernel() */
} else {
lock_kernel();
error = vmtruncate(inode, attr->ia_size);
unlock_kernel();
if (error)
goto out;
}
}

so, all (!) truncates are serialized

>>>>> Andreas Dilger (AD) writes:

AD> On Mar 13, 2003 11:55 +0300, Alex Tomas wrote:
>> as Andrew said, concurrent balloc for ext3 is useless because of
>> BKL. and I saw it in benchmarks. but it may be useful for ext2.

AD> Sadly, we are constantly diverging the ext2/ext3 codebases. Lots
AD> of features are going into ext3, but lots of fixes/improvements
AD> are only going into ext2. Is ext3 holding BKL for doing
AD> journal_start() still?

AD> Looking at ext3_prepare_write() we grab the BKL for doing
AD> journal_start() and for journal_stop(), but I don't _think_ we
AD> need BKL for journal_stop() do we? We may or may not need it for
AD> the journal_data case, but that is not even working right now I
AD> think.

AD> It also seems we are getting BKL in ext3_truncate(), which likely
AD> isn't needed past journal_start(), although we do need to have
AD> superblock-only lock for ext3_orphan_add/del.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/