diff options
author | Dave Chinner <david@fromorbit.com> | 2015-06-01 03:50:18 +0300 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2015-06-01 03:50:18 +0300 |
commit | e01c025fbdd5584bc2c8f6b88cb014f5f9bd790f (patch) | |
tree | d035f7fc14a8174da93e9cc1f540a2b329474df2 /fs/xfs/libxfs/xfs_bmap.c | |
parent | 22419ac9fe5e79483596cebdbd1d1209c18bac1a (diff) | |
parent | 339e4f66d1fa00a0161a2c27f3c9aa256d856979 (diff) | |
download | linux-e01c025fbdd5584bc2c8f6b88cb014f5f9bd790f.tar.xz |
Merge branch 'xfs-misc-fixes-for-4.2' into for-next
Diffstat (limited to 'fs/xfs/libxfs/xfs_bmap.c')
-rw-r--r-- | fs/xfs/libxfs/xfs_bmap.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index f1026e86dabc..5cb3e85c9258 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -4424,7 +4424,15 @@ xfs_bmapi_convert_unwritten( error = xfs_bmap_add_extent_unwritten_real(bma->tp, bma->ip, &bma->idx, &bma->cur, mval, bma->firstblock, bma->flist, &tmp_logflags); - bma->logflags |= tmp_logflags; + /* + * Log the inode core unconditionally in the unwritten extent conversion + * path because the conversion might not have done so (e.g., if the + * extent count hasn't changed). We need to make sure the inode is dirty + * in the transaction for the sake of fsync(), even if nothing has + * changed, because fsync() will not force the log for this transaction + * unless it sees the inode pinned. + */ + bma->logflags |= tmp_logflags | XFS_ILOG_CORE; if (error) return error; |