aboutsummaryrefslogtreecommitdiffstats
path: root/mm
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
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')
-rw-r--r--mm/filemap.c4
-rw-r--r--mm/shmem.c12
-rw-r--r--mm/swapfile.c12
3 files changed, 14 insertions, 14 deletions
diff --git a/mm/filemap.c b/mm/filemap.c
index 847ee43c2806..30ab120b33db 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -2684,11 +2684,11 @@ ssize_t generic_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
2684 struct inode *inode = file->f_mapping->host; 2684 struct inode *inode = file->f_mapping->host;
2685 ssize_t ret; 2685 ssize_t ret;
2686 2686
2687 mutex_lock(&inode->i_mutex); 2687 inode_lock(inode);
2688 ret = generic_write_checks(iocb, from); 2688 ret = generic_write_checks(iocb, from);
2689 if (ret > 0) 2689 if (ret > 0)
2690 ret = __generic_file_write_iter(iocb, from); 2690 ret = __generic_file_write_iter(iocb, from);
2691 mutex_unlock(&inode->i_mutex); 2691 inode_unlock(inode);
2692 2692
2693 if (ret > 0) { 2693 if (ret > 0) {
2694 ssize_t err; 2694 ssize_t err;
diff --git a/mm/shmem.c b/mm/shmem.c
index fa2ceb2d2655..38c5e72c7008 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1902,7 +1902,7 @@ static loff_t shmem_file_llseek(struct file *file, loff_t offset, int whence)
1902 if (whence != SEEK_DATA && whence != SEEK_HOLE) 1902 if (whence != SEEK_DATA && whence != SEEK_HOLE)
1903 return generic_file_llseek_size(file, offset, whence, 1903 return generic_file_llseek_size(file, offset, whence,
1904 MAX_LFS_FILESIZE, i_size_read(inode)); 1904 MAX_LFS_FILESIZE, i_size_read(inode));
1905 mutex_lock(&inode->i_mutex); 1905 inode_lock(inode);
1906 /* We're holding i_mutex so we can access i_size directly */ 1906 /* We're holding i_mutex so we can access i_size directly */
1907 1907
1908 if (offset < 0) 1908 if (offset < 0)
@@ -1926,7 +1926,7 @@ static loff_t shmem_file_llseek(struct file *file, loff_t offset, int whence)
1926 1926
1927 if (offset >= 0) 1927 if (offset >= 0)
1928 offset = vfs_setpos(file, offset, MAX_LFS_FILESIZE); 1928 offset = vfs_setpos(file, offset, MAX_LFS_FILESIZE);
1929 mutex_unlock(&inode->i_mutex); 1929 inode_unlock(inode);
1930 return offset; 1930 return offset;
1931} 1931}
1932 1932
@@ -2091,7 +2091,7 @@ int shmem_add_seals(struct file *file, unsigned int seals)
2091 if (seals & ~(unsigned int)F_ALL_SEALS) 2091 if (seals & ~(unsigned int)F_ALL_SEALS)
2092 return -EINVAL; 2092 return -EINVAL;
2093 2093
2094 mutex_lock(&inode->i_mutex); 2094 inode_lock(inode);
2095 2095
2096 if (info->seals & F_SEAL_SEAL) { 2096 if (info->seals & F_SEAL_SEAL) {
2097 error = -EPERM; 2097 error = -EPERM;
@@ -2114,7 +2114,7 @@ int shmem_add_seals(struct file *file, unsigned int seals)
2114 error = 0; 2114 error = 0;
2115 2115
2116unlock: 2116unlock:
2117 mutex_unlock(&inode->i_mutex); 2117 inode_unlock(inode);
2118 return error; 2118 return error;
2119} 2119}
2120EXPORT_SYMBOL_GPL(shmem_add_seals); 2120EXPORT_SYMBOL_GPL(shmem_add_seals);
@@ -2164,7 +2164,7 @@ static long shmem_fallocate(struct file *file, int mode, loff_t offset,
2164 if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE)) 2164 if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE))
2165 return -EOPNOTSUPP; 2165 return -EOPNOTSUPP;
2166 2166
2167 mutex_lock(&inode->i_mutex); 2167 inode_lock(inode);
2168 2168
2169 if (mode & FALLOC_FL_PUNCH_HOLE) { 2169 if (mode & FALLOC_FL_PUNCH_HOLE) {
2170 struct address_space *mapping = file->f_mapping; 2170 struct address_space *mapping = file->f_mapping;
@@ -2277,7 +2277,7 @@ undone:
2277 inode->i_private = NULL; 2277 inode->i_private = NULL;
2278 spin_unlock(&inode->i_lock); 2278 spin_unlock(&inode->i_lock);
2279out: 2279out:
2280 mutex_unlock(&inode->i_mutex); 2280 inode_unlock(inode);
2281 return error; 2281 return error;
2282} 2282}
2283 2283
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