wok view linux/stuff/aufs2-module-2.6.36.patch @ rev 7378

add:stardict
author fireflyoo <lufeng369@gmail.com>
date Thu Nov 25 22:38:14 2010 +0000 (2010-11-25)
parents
children
line source
1 diff --git a/ubuntu/aufs/branch.c b/ubuntu/aufs/branch.c
2 index cd4463c..ff6b158 100644
3 --- a/fs/aufs/branch.c
4 +++ b/fs/aufs/branch.c
5 @@ -22,6 +22,8 @@
7 #include <linux/file.h>
8 #include <linux/statfs.h>
9 +#include <linux/lglock.h>
10 +#include <linux/percpu.h>
11 #include "aufs.h"
13 /*
14 @@ -851,7 +853,8 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
15 goto out;
17 /* no need file_list_lock() since sbinfo is locked? defered? */
18 - list_for_each_entry(file, &sb->s_files, f_u.fu_list) {
19 + lg_global_lock(files_lglock);
20 + do_file_list_for_each_entry(sb, file) {
21 if (special_file(file->f_dentry->d_inode->i_mode))
22 continue;
24 @@ -861,6 +864,7 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
25 err = -EBUSY;
26 FiMustNoWaiters(file);
27 fi_read_unlock(file);
28 + lg_global_unlock(files_lglock);
29 goto out_free;
30 }
32 @@ -889,10 +893,13 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
33 if (p) {
34 a = p;
35 a[n++] = hf;
36 - } else
37 + } else {
38 + lg_global_unlock(files_lglock);
39 goto out_free;
40 + }
41 }
42 - }
43 + } while_file_list_for_each_entry;
44 + lg_global_unlock(files_lglock);
46 err = 0;
47 if (n)