From 01039ac604745c6d7bf897a1373ba50b8414e5e4 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Tue, 25 Aug 2009 02:44:21 +0200 Subject: [PATCH] --- yaml --- r: 173177 b: refs/heads/master c: b10ab4c337a600456ed2d9daea0331016f7cdeeb h: refs/heads/master i: 173175: 9bafd82befae2459d5c67daaf64b9f8552731ea5 v: v3 --- [refs] | 2 +- trunk/fs/reiserfs/namei.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 866aea619b52..6cdb10b7cd98 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ae635c0bbd6c10aa62bf5149c6f41add59fbf4d2 +refs/heads/master: b10ab4c337a600456ed2d9daea0331016f7cdeeb diff --git a/trunk/fs/reiserfs/namei.c b/trunk/fs/reiserfs/namei.c index b3973c9f0bf1..e296ff72a6cc 100644 --- a/trunk/fs/reiserfs/namei.c +++ b/trunk/fs/reiserfs/namei.c @@ -732,6 +732,7 @@ static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) struct inode *inode; struct reiserfs_transaction_handle th; struct reiserfs_security_handle security; + int lock_depth; /* We need blocks for transaction + (user+group)*(quotas for new inode + update of quota for directory owner) */ int jbegin_count = JOURNAL_PER_BALANCE_CNT * 3 + @@ -755,7 +756,7 @@ static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) return retval; } jbegin_count += retval; - reiserfs_write_lock(dir->i_sb); + lock_depth = reiserfs_write_lock_once(dir->i_sb); retval = journal_begin(&th, dir->i_sb, jbegin_count); if (retval) { @@ -805,8 +806,8 @@ static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) d_instantiate(dentry, inode); unlock_new_inode(inode); retval = journal_end(&th, dir->i_sb, jbegin_count); - out_failed: - reiserfs_write_unlock(dir->i_sb); +out_failed: + reiserfs_write_unlock_once(dir->i_sb, lock_depth); return retval; }