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/
This archive was generated by hypermail 2b29 : Sat Mar 15 2003 - 22:00:36 EST