| To: | "Jan Kara" <jack@xxxxxxx> |
|---|---|
| Subject: | your patch "mm: Remove false WARN_ON from pagecache_isize_extended()" |
| From: | "Jan Beulich" <JBeulich@xxxxxxxx> |
| Date: | Mon, 03 Nov 2014 16:41:13 +0000 |
| Cc: | <david@xxxxxxxxxxxxx>,<xfs@xxxxxxxxxxx>, <linux-kernel@xxxxxxxxxxxxxxx> |
| Delivered-to: | xfs@xxxxxxxxxxx |
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;
}
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH v2 17/17] xfs: enable sparse inode chunks for v5 superblocks, Brian Foster |
|---|---|
| Next by Date: | [PATCH v2 07/17] xfs: handle sparse inode chunks in icreate log recovery, Brian Foster |
| Previous by Thread: | [PATCH v2 00/17] xfs: sparse inode chunks, Brian Foster |
| Next by Thread: | Re: your patch "mm: Remove false WARN_ON from pagecache_isize_extended()", Dave Chinner |
| Indexes: | [Date] [Thread] [Top] [All Lists] |