summaryrefslogtreecommitdiff
path: root/include/linux/reiserfs_fs_i.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2010-07-04 12:18:57 +0400
committerAl Viro <viro@zeniv.linux.org.uk>2010-08-10 00:47:27 +0400
commit0e4f6a791b1e8cfde75a74e2f885642ecb3fe9d8 (patch)
tree3cb4d6590be13c4890a7d6d40b90a2517ccbe87a /include/linux/reiserfs_fs_i.h
parent918377b696bff7384923a1ef4bf0af7626cb9b68 (diff)
downloadlinux-0e4f6a791b1e8cfde75a74e2f885642ecb3fe9d8.tar.xz
Fix reiserfs_file_release()
a) count file openers correctly; i_count use was completely wrong b) use new mutex for exclusion between final close/open/truncate, to protect tailpacking logics. i_mutex use was wrong and resulted in deadlocks. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/reiserfs_fs_i.h')
-rw-r--r--include/linux/reiserfs_fs_i.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/reiserfs_fs_i.h b/include/linux/reiserfs_fs_i.h
index 89f4d3abbf5a..97959bdfe214 100644
--- a/include/linux/reiserfs_fs_i.h
+++ b/include/linux/reiserfs_fs_i.h
@@ -25,7 +25,6 @@ typedef enum {
i_link_saved_truncate_mask = 0x0020,
i_has_xattr_dir = 0x0040,
i_data_log = 0x0080,
- i_ever_mapped = 0x0100
} reiserfs_inode_flags;
struct reiserfs_inode_info {
@@ -53,7 +52,8 @@ struct reiserfs_inode_info {
** flushed */
unsigned int i_trans_id;
struct reiserfs_journal_list *i_jl;
- struct mutex i_mmap;
+ atomic_t openers;
+ struct mutex tailpack;
#ifdef CONFIG_REISERFS_FS_XATTR
struct rw_semaphore i_xattr_sem;
#endif