mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
Merge branch 'reiserfs/kill-bkl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing
* 'reiserfs/kill-bkl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing: reiserfs: Safely acquire i_mutex from xattr_rmdir reiserfs: Safely acquire i_mutex from reiserfs_for_each_xattr reiserfs: Fix journal mutex <-> inode mutex lock inversion reiserfs: Fix unwanted recursive reiserfs lock in reiserfs_unlink() reiserfs: Relax lock before open xattr dir in reiserfs_xattr_set_handle() reiserfs: Relax reiserfs lock while freeing the journal reiserfs: Fix reiserfs lock <-> i_mutex dependency inversion on xattr reiserfs: Warn on lock relax if taken recursively reiserfs: Fix reiserfs lock <-> i_xattr_sem dependency inversion reiserfs: Fix remaining in-reclaim-fs <-> reclaim-fs-on locking inversion reiserfs: Fix reiserfs lock <-> inode mutex dependency inversion reiserfs: Fix reiserfs lock and journal lock inversion dependency reiserfs: Fix possible recursive lock
This commit is contained in:
commit
45d28b0972
7 changed files with 79 additions and 15 deletions
|
@ -31,11 +31,12 @@ void reiserfs_delete_inode(struct inode *inode)
|
|||
JOURNAL_PER_BALANCE_CNT * 2 +
|
||||
2 * REISERFS_QUOTA_INIT_BLOCKS(inode->i_sb);
|
||||
struct reiserfs_transaction_handle th;
|
||||
int depth;
|
||||
int err;
|
||||
|
||||
truncate_inode_pages(&inode->i_data, 0);
|
||||
|
||||
reiserfs_write_lock(inode->i_sb);
|
||||
depth = reiserfs_write_lock_once(inode->i_sb);
|
||||
|
||||
/* The = 0 happens when we abort creating a new inode for some reason like lack of space.. */
|
||||
if (!(inode->i_state & I_NEW) && INODE_PKEY(inode)->k_objectid != 0) { /* also handles bad_inode case */
|
||||
|
@ -74,7 +75,7 @@ void reiserfs_delete_inode(struct inode *inode)
|
|||
out:
|
||||
clear_inode(inode); /* note this must go after the journal_end to prevent deadlock */
|
||||
inode->i_blocks = 0;
|
||||
reiserfs_write_unlock(inode->i_sb);
|
||||
reiserfs_write_unlock_once(inode->i_sb, depth);
|
||||
}
|
||||
|
||||
static void _make_cpu_key(struct cpu_key *key, int version, __u32 dirid,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue