diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-07-16 12:01:42 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-07-16 12:01:42 -0400 |
commit | 8626e4a42675ff9903f7d4fbf14d8ebc11b5926c (patch) | |
tree | c631dfe2854cb1382a5d8f5aa11b071762ddf27d /fs/file_table.c | |
parent | a8d8f02cf0c379693762107afe812b9e52090e39 (diff) | |
parent | 9249e17fe094d853d1ef7475dd559a2cc7e23d42 (diff) |
Merge commit '9249e17fe094d853d1ef7475dd559a2cc7e23d42' into nfs-for-3.6
Resolve conflicts with the VFS atomic open and sget changes.
Conflicts:
fs/nfs/nfs4proc.c
Diffstat (limited to 'fs/file_table.c')
-rw-r--r-- | fs/file_table.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/fs/file_table.c b/fs/file_table.c index a305d9e2d1b2..9ace2781931e 100644 --- a/fs/file_table.c +++ b/fs/file_table.c | |||
@@ -483,10 +483,8 @@ void mark_files_ro(struct super_block *sb) | |||
483 | { | 483 | { |
484 | struct file *f; | 484 | struct file *f; |
485 | 485 | ||
486 | retry: | ||
487 | lg_global_lock(&files_lglock); | 486 | lg_global_lock(&files_lglock); |
488 | do_file_list_for_each_entry(sb, f) { | 487 | do_file_list_for_each_entry(sb, f) { |
489 | struct vfsmount *mnt; | ||
490 | if (!S_ISREG(f->f_path.dentry->d_inode->i_mode)) | 488 | if (!S_ISREG(f->f_path.dentry->d_inode->i_mode)) |
491 | continue; | 489 | continue; |
492 | if (!file_count(f)) | 490 | if (!file_count(f)) |
@@ -499,12 +497,7 @@ retry: | |||
499 | if (file_check_writeable(f) != 0) | 497 | if (file_check_writeable(f) != 0) |
500 | continue; | 498 | continue; |
501 | file_release_write(f); | 499 | file_release_write(f); |
502 | mnt = mntget(f->f_path.mnt); | 500 | mnt_drop_write_file(f); |
503 | /* This can sleep, so we can't hold the spinlock. */ | ||
504 | lg_global_unlock(&files_lglock); | ||
505 | mnt_drop_write(mnt); | ||
506 | mntput(mnt); | ||
507 | goto retry; | ||
508 | } while_file_list_for_each_entry; | 501 | } while_file_list_for_each_entry; |
509 | lg_global_unlock(&files_lglock); | 502 | lg_global_unlock(&files_lglock); |
510 | } | 503 | } |