diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-17 17:14:13 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-17 17:14:13 -0500 |
commit | b6b220b0c76f0aa9cb5efb882424a7acc109d898 (patch) | |
tree | 1482c2ce0d6dab9777b5a0d5a23ceedf5efad4ce | |
parent | b04a23421bf63d3fde3227041b31e39cb5b5349d (diff) | |
parent | 2015a63dce8d73a439232a0d5162c88d8513101e (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.c | 2 | ||||
-rw-r--r-- | fs/xfs/libxfs/xfs_log_format.h | 4 | ||||
-rw-r--r-- | fs/xfs/xfs_inode.c | 1 |
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 | } |