lkml.org 
[lkml]   [2003]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [Ext2-devel] [PATCH] concurrent block allocation for ext2 against 2.5.64
On Thu, Mar 13, 2003 at 09:43:05PM +0300, Alex Tomas wrote:
>
> 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

This looks like a bug. It should be safe to delete them. Rationale:

- Documentation/filesystems/Locking says ->truncate is called without the BKL.
- This isn't the only place vmtruncate() is called. Several of the callers
do it without the BKL (eg xfs, cifs).
- vmtruncate() appears to handle its own locking (mapping->i_shared_sem)

Comments?

--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
-
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/

\
 
 \ /
  Last update: 2005-03-22 13:33    [W:0.053 / U:9.268 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site