summaryrefslogtreecommitdiffstats
path: root/mm/swapfile.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-01-22 15:40:57 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2016-01-22 18:04:28 -0500
commit5955102c9984fa081b2d570cfac75c97eecf8f3b (patch)
treea4744386eac4b916e847eb4eedfada158f6527b4 /mm/swapfile.c
parent57b8f112cfe6622ddddb8c2641206bb5fa8a112d (diff)
wrappers for ->i_mutex access
parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested}, inode_foo(inode) being mutex_foo(&inode->i_mutex). Please, use those for access to ->i_mutex; over the coming cycle ->i_mutex will become rwsem, with ->lookup() done with it held only shared. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'mm/swapfile.c')
-rw-r--r--mm/swapfile.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c
index c43f654a7b64..d2c37365e2d6 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -1956,9 +1956,9 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
1956 set_blocksize(bdev, old_block_size); 1956 set_blocksize(bdev, old_block_size);
1957 blkdev_put(bdev, FMODE_READ | FMODE_WRITE | FMODE_EXCL); 1957 blkdev_put(bdev, FMODE_READ | FMODE_WRITE | FMODE_EXCL);
1958 } else { 1958 } else {
1959 mutex_lock(&inode->i_mutex); 1959 inode_lock(inode);
1960 inode->i_flags &= ~S_SWAPFILE; 1960 inode->i_flags &= ~S_SWAPFILE;
1961 mutex_unlock(&inode->i_mutex); 1961 inode_unlock(inode);
1962 } 1962 }
1963 filp_close(swap_file, NULL); 1963 filp_close(swap_file, NULL);
1964 1964
@@ -2183,7 +2183,7 @@ static int claim_swapfile(struct swap_info_struct *p, struct inode *inode)
2183 p->flags |= SWP_BLKDEV; 2183 p->flags |= SWP_BLKDEV;
2184 } else if (S_ISREG(inode->i_mode)) { 2184 } else if (S_ISREG(inode->i_mode)) {
2185 p->bdev = inode->i_sb->s_bdev; 2185 p->bdev = inode->i_sb->s_bdev;
2186 mutex_lock(&inode->i_mutex); 2186 inode_lock(inode);
2187 if (IS_SWAPFILE(inode)) 2187 if (IS_SWAPFILE(inode))
2188 return -EBUSY; 2188 return -EBUSY;
2189 } else 2189 } else
@@ -2416,7 +2416,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
2416 mapping = swap_file->f_mapping; 2416 mapping = swap_file->f_mapping;
2417 inode = mapping->host; 2417 inode = mapping->host;
2418 2418
2419 /* If S_ISREG(inode->i_mode) will do mutex_lock(&inode->i_mutex); */ 2419 /* If S_ISREG(inode->i_mode) will do inode_lock(inode); */
2420 error = claim_swapfile(p, inode); 2420 error = claim_swapfile(p, inode);
2421 if (unlikely(error)) 2421 if (unlikely(error))
2422 goto bad_swap; 2422 goto bad_swap;
@@ -2561,7 +2561,7 @@ bad_swap:
2561 vfree(cluster_info); 2561 vfree(cluster_info);
2562 if (swap_file) { 2562 if (swap_file) {
2563 if (inode && S_ISREG(inode->i_mode)) { 2563 if (inode && S_ISREG(inode->i_mode)) {
2564 mutex_unlock(&inode->i_mutex); 2564 inode_unlock(inode);
2565 inode = NULL; 2565 inode = NULL;
2566 } 2566 }
2567 filp_close(swap_file, NULL); 2567 filp_close(swap_file, NULL);
@@ -2574,7 +2574,7 @@ out:
2574 if (name) 2574 if (name)
2575 putname(name); 2575 putname(name);
2576 if (inode && S_ISREG(inode->i_mode)) 2576 if (inode && S_ISREG(inode->i_mode))
2577 mutex_unlock(&inode->i_mutex); 2577 inode_unlock(inode);
2578 return error; 2578 return error;
2579} 2579}
2580 2580