diff options
author | Sam Ravnborg <sam@mars.ravnborg.org> | 2006-07-03 23:24:23 +0200 |
---|---|---|
committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2006-07-03 23:24:23 +0200 |
commit | 05668381140309088443bf5dc53add4104610fbb (patch) | |
tree | ed53039717390e1a71ff16209281b1f1c8d3e6be /fs/ufs/inode.c | |
parent | 34c162f79e374556dd1384437f0dab558b5dc657 (diff) | |
parent | 29454dde27d8e340bb1987bad9aa504af7081eba (diff) | |
download | lwn-05668381140309088443bf5dc53add4104610fbb.tar.gz lwn-05668381140309088443bf5dc53add4104610fbb.zip |
Merge branch 'master' of /home/sam/kernel/linux-2.6/
Diffstat (limited to 'fs/ufs/inode.c')
-rw-r--r-- | fs/ufs/inode.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/ufs/inode.c b/fs/ufs/inode.c index 488b5ff48afb..e7c8615beb65 100644 --- a/fs/ufs/inode.c +++ b/fs/ufs/inode.c @@ -843,14 +843,17 @@ int ufs_sync_inode (struct inode *inode) void ufs_delete_inode (struct inode * inode) { + loff_t old_i_size; + truncate_inode_pages(&inode->i_data, 0); /*UFS_I(inode)->i_dtime = CURRENT_TIME;*/ lock_kernel(); mark_inode_dirty(inode); ufs_update_inode(inode, IS_SYNC(inode)); + old_i_size = inode->i_size; inode->i_size = 0; - if (inode->i_blocks) - ufs_truncate (inode); + if (inode->i_blocks && ufs_truncate(inode, old_i_size)) + ufs_warning(inode->i_sb, __FUNCTION__, "ufs_truncate failed\n"); ufs_free_inode (inode); unlock_kernel(); } |