diff options
Diffstat (limited to 'fs/reiserfs/ioctl.c')
| -rw-r--r-- | fs/reiserfs/ioctl.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/fs/reiserfs/ioctl.c b/fs/reiserfs/ioctl.c index f53505de0712..5cbb81e134ac 100644 --- a/fs/reiserfs/ioctl.c +++ b/fs/reiserfs/ioctl.c | |||
| @@ -170,6 +170,7 @@ int reiserfs_prepare_write(struct file *f, struct page *page, | |||
| 170 | int reiserfs_unpack(struct inode *inode, struct file *filp) | 170 | int reiserfs_unpack(struct inode *inode, struct file *filp) | 
| 171 | { | 171 | { | 
| 172 | int retval = 0; | 172 | int retval = 0; | 
| 173 | int depth; | ||
| 173 | int index; | 174 | int index; | 
| 174 | struct page *page; | 175 | struct page *page; | 
| 175 | struct address_space *mapping; | 176 | struct address_space *mapping; | 
| @@ -188,8 +189,8 @@ int reiserfs_unpack(struct inode *inode, struct file *filp) | |||
| 188 | /* we need to make sure nobody is changing the file size beneath | 189 | /* we need to make sure nobody is changing the file size beneath | 
| 189 | ** us | 190 | ** us | 
| 190 | */ | 191 | */ | 
| 191 | mutex_lock(&inode->i_mutex); | 192 | reiserfs_mutex_lock_safe(&inode->i_mutex, inode->i_sb); | 
| 192 | reiserfs_write_lock(inode->i_sb); | 193 | depth = reiserfs_write_lock_once(inode->i_sb); | 
| 193 | 194 | ||
| 194 | write_from = inode->i_size & (blocksize - 1); | 195 | write_from = inode->i_size & (blocksize - 1); | 
| 195 | /* if we are on a block boundary, we are already unpacked. */ | 196 | /* if we are on a block boundary, we are already unpacked. */ | 
| @@ -224,6 +225,6 @@ int reiserfs_unpack(struct inode *inode, struct file *filp) | |||
| 224 | 225 | ||
| 225 | out: | 226 | out: | 
| 226 | mutex_unlock(&inode->i_mutex); | 227 | mutex_unlock(&inode->i_mutex); | 
| 227 | reiserfs_write_unlock(inode->i_sb); | 228 | reiserfs_write_unlock_once(inode->i_sb, depth); | 
| 228 | return retval; | 229 | return retval; | 
| 229 | } | 230 | } | 
