Messages in this thread Patch in this message | | | Date | Mon, 03 Nov 2014 16:41:13 +0000 | From | "Jan Beulich" <> | Subject | your patch "mm: Remove false WARN_ON from pagecache_isize_extended()" |
| |
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.
Jan
--- 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) @@ -877,7 +877,7 @@ xfs_file_fallocate( } out_unlock: - xfs_iunlock(ip, XFS_IOLOCK_EXCL); + xfs_rw_iunlock(ip, XFS_IOLOCK_EXCL); return error; }
| |