From c3b636df64a7bdcadde976fe5eede8d796188e4e Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Sun, 13 Dec 2009 23:32:06 +0100 Subject: [PATCH] --- yaml --- r: 178717 b: refs/heads/master c: cb1c2e51c5a72f093b5af384b11d2f1c2abd6c13 h: refs/heads/master i: 178715: 372a35b52b02410ec342ee08c45ebd714951792a v: v3 --- [refs] | 2 +- trunk/fs/reiserfs/inode.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index ad708349de54..abaa8b18dcab 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 500f5a0bf5f0624dae34307010e240ec090e4cde +refs/heads/master: cb1c2e51c5a72f093b5af384b11d2f1c2abd6c13 diff --git a/trunk/fs/reiserfs/inode.c b/trunk/fs/reiserfs/inode.c index 3a28e7751b3c..bd615dfe4ec7 100644 --- a/trunk/fs/reiserfs/inode.c +++ b/trunk/fs/reiserfs/inode.c @@ -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,