diff options
Diffstat (limited to 'fs/reiserfs')
| -rw-r--r-- | fs/reiserfs/inode.c | 2 | ||||
| -rw-r--r-- | fs/reiserfs/super.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c index 57917932212e..192269698a8a 100644 --- a/fs/reiserfs/inode.c +++ b/fs/reiserfs/inode.c | |||
| @@ -45,6 +45,8 @@ void reiserfs_delete_inode(struct inode *inode) | |||
| 45 | goto out; | 45 | goto out; |
| 46 | reiserfs_update_inode_transaction(inode); | 46 | reiserfs_update_inode_transaction(inode); |
| 47 | 47 | ||
| 48 | reiserfs_discard_prealloc(&th, inode); | ||
| 49 | |||
| 48 | err = reiserfs_delete_object(&th, inode); | 50 | err = reiserfs_delete_object(&th, inode); |
| 49 | 51 | ||
| 50 | /* Do quota update inside a transaction for journaled quotas. We must do that | 52 | /* Do quota update inside a transaction for journaled quotas. We must do that |
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index ed424d708e69..1d40f2bd1970 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
| @@ -2165,8 +2165,10 @@ static ssize_t reiserfs_quota_write(struct super_block *sb, int type, | |||
| 2165 | blk++; | 2165 | blk++; |
| 2166 | } | 2166 | } |
| 2167 | out: | 2167 | out: |
| 2168 | if (len == towrite) | 2168 | if (len == towrite) { |
| 2169 | mutex_unlock(&inode->i_mutex); | ||
| 2169 | return err; | 2170 | return err; |
| 2171 | } | ||
| 2170 | if (inode->i_size < off + len - towrite) | 2172 | if (inode->i_size < off + len - towrite) |
| 2171 | i_size_write(inode, off + len - towrite); | 2173 | i_size_write(inode, off + len - towrite); |
| 2172 | inode->i_version++; | 2174 | inode->i_version++; |
