git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
switch reiserfs to usual conventions for caching ACLs
[safe/jmp/linux-2.6]
/
fs
/
reiserfs
/
super.c
diff --git
a/fs/reiserfs/super.c
b/fs/reiserfs/super.c
index
90dcb7b
..
b194451
100644
(file)
--- a/
fs/reiserfs/super.c
+++ b/
fs/reiserfs/super.c
@@
-28,6
+28,7
@@
#include <linux/mount.h>
#include <linux/namei.h>
#include <linux/crc32.h>
#include <linux/mount.h>
#include <linux/namei.h>
#include <linux/crc32.h>
+#include <linux/smp_lock.h>
struct file_system_type reiserfs_fs_type;
struct file_system_type reiserfs_fs_type;
@@
-529,8
+530,8
@@
static void init_once(void *foo)
INIT_LIST_HEAD(&ei->i_prealloc_list);
inode_init_once(&ei->vfs_inode);
#ifdef CONFIG_REISERFS_FS_POSIX_ACL
INIT_LIST_HEAD(&ei->i_prealloc_list);
inode_init_once(&ei->vfs_inode);
#ifdef CONFIG_REISERFS_FS_POSIX_ACL
- ei->i_acl_access =
NULL
;
- ei->i_acl_default =
NULL
;
+ ei->i_acl_access =
ACL_NOT_CACHED
;
+ ei->i_acl_default =
ACL_NOT_CACHED
;
#endif
}
#endif
}
@@
-585,14
+586,14
@@
static void reiserfs_clear_inode(struct inode *inode)
struct posix_acl *acl;
acl = REISERFS_I(inode)->i_acl_access;
struct posix_acl *acl;
acl = REISERFS_I(inode)->i_acl_access;
- if (acl &&
!IS_ERR(acl)
)
+ if (acl &&
acl != ACL_NOT_CACHED
)
posix_acl_release(acl);
posix_acl_release(acl);
- REISERFS_I(inode)->i_acl_access =
NULL
;
+ REISERFS_I(inode)->i_acl_access =
ACL_NOT_CACHED
;
acl = REISERFS_I(inode)->i_acl_default;
acl = REISERFS_I(inode)->i_acl_default;
- if (acl &&
!IS_ERR(acl)
)
+ if (acl &&
acl != ACL_NOT_CACHED
)
posix_acl_release(acl);
posix_acl_release(acl);
- REISERFS_I(inode)->i_acl_default =
NULL
;
+ REISERFS_I(inode)->i_acl_default =
ACL_NOT_CACHED
;
}
#else
#define reiserfs_clear_inode NULL
}
#else
#define reiserfs_clear_inode NULL
@@
-1196,6
+1197,7
@@
static int reiserfs_remount(struct super_block *s, int *mount_flags, char *arg)
memcpy(qf_names, REISERFS_SB(s)->s_qf_names, sizeof(qf_names));
#endif
memcpy(qf_names, REISERFS_SB(s)->s_qf_names, sizeof(qf_names));
#endif
+ lock_kernel();
rs = SB_DISK_SUPER_BLOCK(s);
if (!reiserfs_parse_options
rs = SB_DISK_SUPER_BLOCK(s);
if (!reiserfs_parse_options
@@
-1318,10
+1320,12
@@
static int reiserfs_remount(struct super_block *s, int *mount_flags, char *arg)
out_ok:
replace_mount_options(s, new_opts);
out_ok:
replace_mount_options(s, new_opts);
+ unlock_kernel();
return 0;
out_err:
kfree(new_opts);
return 0;
out_err:
kfree(new_opts);
+ unlock_kernel();
return err;
}
return err;
}