|
@@ -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;
|
|
|
}
|
|
|
|