#include <linux/mount.h>
#include <linux/namei.h>
#include <linux/crc32.h>
+#include <linux/smp_lock.h>
struct file_system_type reiserfs_fs_type;
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
}
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);
- REISERFS_I(inode)->i_acl_access = NULL;
+ REISERFS_I(inode)->i_acl_access = ACL_NOT_CACHED;
acl = REISERFS_I(inode)->i_acl_default;
- if (acl && !IS_ERR(acl))
+ if (acl && acl != ACL_NOT_CACHED)
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
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
out_ok:
replace_mount_options(s, new_opts);
+ unlock_kernel();
return 0;
out_err:
kfree(new_opts);
+ unlock_kernel();
return err;
}