From 7317ec00baca374112b1c1328ff1ef31069c3ad1 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Tue, 14 Apr 2009 05:34:24 +0200 Subject: [PATCH] --- yaml --- r: 173158 b: refs/heads/master c: 22c963addcf426bef97a43f6e601f985f8082ed5 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/reiserfs/inode.c | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 42721a4f2745..7a511c26a296 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: daf88c898312a22b5385655bc6e0b064eaa2efba +refs/heads/master: 22c963addcf426bef97a43f6e601f985f8082ed5 diff --git a/trunk/fs/reiserfs/inode.c b/trunk/fs/reiserfs/inode.c index 1893c8198439..cc70b56bf6f2 100644 --- a/trunk/fs/reiserfs/inode.c +++ b/trunk/fs/reiserfs/inode.c @@ -2079,8 +2079,9 @@ int reiserfs_truncate_file(struct inode *inode, int update_timestamps) int error; struct buffer_head *bh = NULL; int err2; + int lock_depth; - reiserfs_write_lock(inode->i_sb); + lock_depth = reiserfs_write_lock_once(inode->i_sb); if (inode->i_size > 0) { error = grab_tail_page(inode, &page, &bh); @@ -2149,14 +2150,17 @@ int reiserfs_truncate_file(struct inode *inode, int update_timestamps) page_cache_release(page); } - reiserfs_write_unlock(inode->i_sb); + reiserfs_write_unlock_once(inode->i_sb, lock_depth); + return 0; out: if (page) { unlock_page(page); page_cache_release(page); } - reiserfs_write_unlock(inode->i_sb); + + reiserfs_write_unlock_once(inode->i_sb, lock_depth); + return error; }