wok annotate linux-libre/stuff/aufs2-module-2.6.36.patch @ rev 17145
libnxml: fix genpkg_rules
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Sep 10 12:55:03 2014 +0200 (2014-09-10) |
parents | |
children |
rev | line source |
---|---|
gokhlayeh@9257 | 1 diff --git a/ubuntu/aufs/branch.c b/ubuntu/aufs/branch.c |
gokhlayeh@9257 | 2 index cd4463c..ff6b158 100644 |
gokhlayeh@9257 | 3 --- a/fs/aufs/branch.c |
gokhlayeh@9257 | 4 +++ b/fs/aufs/branch.c |
gokhlayeh@9257 | 5 @@ -22,6 +22,8 @@ |
gokhlayeh@9257 | 6 |
gokhlayeh@9257 | 7 #include <linux/file.h> |
gokhlayeh@9257 | 8 #include <linux/statfs.h> |
gokhlayeh@9257 | 9 +#include <linux/lglock.h> |
gokhlayeh@9257 | 10 +#include <linux/percpu.h> |
gokhlayeh@9257 | 11 #include "aufs.h" |
gokhlayeh@9257 | 12 |
gokhlayeh@9257 | 13 /* |
gokhlayeh@9257 | 14 @@ -851,7 +853,8 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex) |
gokhlayeh@9257 | 15 goto out; |
gokhlayeh@9257 | 16 |
gokhlayeh@9257 | 17 /* no need file_list_lock() since sbinfo is locked? defered? */ |
gokhlayeh@9257 | 18 - list_for_each_entry(file, &sb->s_files, f_u.fu_list) { |
gokhlayeh@9257 | 19 + lg_global_lock(files_lglock); |
gokhlayeh@9257 | 20 + do_file_list_for_each_entry(sb, file) { |
gokhlayeh@9257 | 21 if (special_file(file->f_dentry->d_inode->i_mode)) |
gokhlayeh@9257 | 22 continue; |
gokhlayeh@9257 | 23 |
gokhlayeh@9257 | 24 @@ -861,6 +864,7 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex) |
gokhlayeh@9257 | 25 err = -EBUSY; |
gokhlayeh@9257 | 26 FiMustNoWaiters(file); |
gokhlayeh@9257 | 27 fi_read_unlock(file); |
gokhlayeh@9257 | 28 + lg_global_unlock(files_lglock); |
gokhlayeh@9257 | 29 goto out_free; |
gokhlayeh@9257 | 30 } |
gokhlayeh@9257 | 31 |
gokhlayeh@9257 | 32 @@ -889,10 +893,13 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex) |
gokhlayeh@9257 | 33 if (p) { |
gokhlayeh@9257 | 34 a = p; |
gokhlayeh@9257 | 35 a[n++] = hf; |
gokhlayeh@9257 | 36 - } else |
gokhlayeh@9257 | 37 + } else { |
gokhlayeh@9257 | 38 + lg_global_unlock(files_lglock); |
gokhlayeh@9257 | 39 goto out_free; |
gokhlayeh@9257 | 40 + } |
gokhlayeh@9257 | 41 } |
gokhlayeh@9257 | 42 - } |
gokhlayeh@9257 | 43 + } while_file_list_for_each_entry; |
gokhlayeh@9257 | 44 + lg_global_unlock(files_lglock); |
gokhlayeh@9257 | 45 |
gokhlayeh@9257 | 46 err = 0; |
gokhlayeh@9257 | 47 if (n) |