diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-01-22 15:40:57 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-01-22 18:04:28 -0500 |
commit | 5955102c9984fa081b2d570cfac75c97eecf8f3b (patch) | |
tree | a4744386eac4b916e847eb4eedfada158f6527b4 /mm | |
parent | 57b8f112cfe6622ddddb8c2641206bb5fa8a112d (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.c | 4 | ||||
-rw-r--r-- | mm/shmem.c | 12 | ||||
-rw-r--r-- | mm/swapfile.c | 12 |
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 | ||
2116 | unlock: | 2116 | unlock: |
2117 | mutex_unlock(&inode->i_mutex); | 2117 | inode_unlock(inode); |
2118 | return error; | 2118 | return error; |
2119 | } | 2119 | } |
2120 | EXPORT_SYMBOL_GPL(shmem_add_seals); | 2120 | EXPORT_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); |
2279 | out: | 2279 | out: |
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 | ||