wok-4.x annotate aufs/stuff/aufs2-module-2.6.36.patch @ rev 9324

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