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>
This commit is contained in:
parent
918377b696
commit
0e4f6a791b
4 changed files with 34 additions and 28 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue