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)