On Mon, Nov 03, 2014 at 04:41:13PM +0000, Jan Beulich wrote: > Jan, > > having run into that warning too, I looked into it a little, and now > having found that patch am pretty uncertain: Both truncate_setsize() > and pagecache_isize_extended() document that they want to be > called with i_mutex held, so removing the WARN_ON() alone seems > either incomplete or wrong. What I found to work without violating > this documented requirement is the patch below. Or, just perhaps, the comments are wrong.... Some filesystems have stronger, more robust internal serialisation than the VFS provides with i_mutex.... > --- a/fs/xfs/xfs_file.c > +++ b/fs/xfs/xfs_file.c > @@ -797,7 +797,7 @@ xfs_file_fallocate( > FALLOC_FL_COLLAPSE_RANGE | FALLOC_FL_ZERO_RANGE)) > return -EOPNOTSUPP; > > - xfs_ilock(ip, XFS_IOLOCK_EXCL); > + xfs_rw_ilock(ip, XFS_IOLOCK_EXCL); > if (mode & FALLOC_FL_PUNCH_HOLE) { > error = xfs_free_file_space(ip, offset, len); > if (error) The i_mutex is completely redundant here. Not to mention there are multiple callers of these xfs_*_file_space() functions used to implement fallocate(), and we're not about to change the locking model for them.... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs