aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-11-17 17:14:13 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2017-11-17 17:14:13 -0500
commitb6b220b0c76f0aa9cb5efb882424a7acc109d898 (patch)
tree1482c2ce0d6dab9777b5a0d5a23ceedf5efad4ce
parentb04a23421bf63d3fde3227041b31e39cb5b5349d (diff)
parent2015a63dce8d73a439232a0d5162c88d8513101e (diff)
Merge tag 'xfs-4.15-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
Pull xfs fixes from Darrick Wong: "A couple more patches to fix a locking bug and some inconsistent type usage in some of the new code: - Fix a forgotten rcu read unlock - Fix some inconsistent integer type usage" * tag 'xfs-4.15-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: xfs: fix type usage xfs: fix forgotten rcu read unlock when skipping inode reclaim
-rw-r--r--fs/xfs/libxfs/xfs_iext_tree.c2
-rw-r--r--fs/xfs/libxfs/xfs_log_format.h4
-rw-r--r--fs/xfs/xfs_inode.c1
3 files changed, 4 insertions, 3 deletions
diff --git a/fs/xfs/libxfs/xfs_iext_tree.c b/fs/xfs/libxfs/xfs_iext_tree.c
index 343a94246f5b..19e546a41251 100644
--- a/fs/xfs/libxfs/xfs_iext_tree.c
+++ b/fs/xfs/libxfs/xfs_iext_tree.c
@@ -302,7 +302,7 @@ xfs_iext_rec_cmp(
302 xfs_fileoff_t offset) 302 xfs_fileoff_t offset)
303{ 303{
304 uint64_t rec_offset = rec->lo & XFS_IEXT_STARTOFF_MASK; 304 uint64_t rec_offset = rec->lo & XFS_IEXT_STARTOFF_MASK;
305 u32 rec_len = rec->hi & XFS_IEXT_LENGTH_MASK; 305 uint32_t rec_len = rec->hi & XFS_IEXT_LENGTH_MASK;
306 306
307 if (rec_offset > offset) 307 if (rec_offset > offset)
308 return 1; 308 return 1;
diff --git a/fs/xfs/libxfs/xfs_log_format.h b/fs/xfs/libxfs/xfs_log_format.h
index 996f035ee205..349d9f8edb89 100644
--- a/fs/xfs/libxfs/xfs_log_format.h
+++ b/fs/xfs/libxfs/xfs_log_format.h
@@ -274,7 +274,7 @@ struct xfs_inode_log_format {
274 uint64_t ilf_ino; /* inode number */ 274 uint64_t ilf_ino; /* inode number */
275 union { 275 union {
276 uint32_t ilfu_rdev; /* rdev value for dev inode*/ 276 uint32_t ilfu_rdev; /* rdev value for dev inode*/
277 u8 __pad[16]; /* unused */ 277 uint8_t __pad[16]; /* unused */
278 } ilf_u; 278 } ilf_u;
279 int64_t ilf_blkno; /* blkno of inode buffer */ 279 int64_t ilf_blkno; /* blkno of inode buffer */
280 int32_t ilf_len; /* len of inode buffer */ 280 int32_t ilf_len; /* len of inode buffer */
@@ -295,7 +295,7 @@ struct xfs_inode_log_format_32 {
295 uint64_t ilf_ino; /* inode number */ 295 uint64_t ilf_ino; /* inode number */
296 union { 296 union {
297 uint32_t ilfu_rdev; /* rdev value for dev inode*/ 297 uint32_t ilfu_rdev; /* rdev value for dev inode*/
298 u8 __pad[16]; /* unused */ 298 uint8_t __pad[16]; /* unused */
299 } ilf_u; 299 } ilf_u;
300 int64_t ilf_blkno; /* blkno of inode buffer */ 300 int64_t ilf_blkno; /* blkno of inode buffer */
301 int32_t ilf_len; /* len of inode buffer */ 301 int32_t ilf_len; /* len of inode buffer */
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index d8226f7a5dde..61d1cb7dc10d 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -2357,6 +2357,7 @@ retry:
2357 */ 2357 */
2358 if (ip->i_ino != inum + i) { 2358 if (ip->i_ino != inum + i) {
2359 xfs_iunlock(ip, XFS_ILOCK_EXCL); 2359 xfs_iunlock(ip, XFS_ILOCK_EXCL);
2360 rcu_read_unlock();
2360 continue; 2361 continue;
2361 } 2362 }
2362 } 2363 }