mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-07 07:05:20 +00:00
mark_files_ro(): don't bother with mntget/mntput
mnt_drop_write_file() is safe under any lock Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
c4107b3097
commit
85d7d618c1
1 changed files with 1 additions and 8 deletions
|
@ -483,10 +483,8 @@ void mark_files_ro(struct super_block *sb)
|
||||||
{
|
{
|
||||||
struct file *f;
|
struct file *f;
|
||||||
|
|
||||||
retry:
|
|
||||||
lg_global_lock(&files_lglock);
|
lg_global_lock(&files_lglock);
|
||||||
do_file_list_for_each_entry(sb, f) {
|
do_file_list_for_each_entry(sb, f) {
|
||||||
struct vfsmount *mnt;
|
|
||||||
if (!S_ISREG(f->f_path.dentry->d_inode->i_mode))
|
if (!S_ISREG(f->f_path.dentry->d_inode->i_mode))
|
||||||
continue;
|
continue;
|
||||||
if (!file_count(f))
|
if (!file_count(f))
|
||||||
|
@ -499,12 +497,7 @@ retry:
|
||||||
if (file_check_writeable(f) != 0)
|
if (file_check_writeable(f) != 0)
|
||||||
continue;
|
continue;
|
||||||
file_release_write(f);
|
file_release_write(f);
|
||||||
mnt = mntget(f->f_path.mnt);
|
mnt_drop_write_file(f);
|
||||||
/* This can sleep, so we can't hold the spinlock. */
|
|
||||||
lg_global_unlock(&files_lglock);
|
|
||||||
mnt_drop_write(mnt);
|
|
||||||
mntput(mnt);
|
|
||||||
goto retry;
|
|
||||||
} while_file_list_for_each_entry;
|
} while_file_list_for_each_entry;
|
||||||
lg_global_unlock(&files_lglock);
|
lg_global_unlock(&files_lglock);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue