Loading fs/ufs/ialloc.c +0 −2 Original line number Diff line number Diff line Loading @@ -94,8 +94,6 @@ void ufs_free_inode (struct inode * inode) is_directory = S_ISDIR(inode->i_mode); clear_inode (inode); if (ubh_isclr (UCPI_UBH(ucpi), ucpi->c_iusedoff, bit)) ufs_error(sb, "ufs_free_inode", "bit already cleared for inode %u", ino); else { Loading fs/ufs/inode.c +26 −17 Original line number Diff line number Diff line Loading @@ -911,13 +911,16 @@ int ufs_sync_inode (struct inode *inode) return ufs_update_inode (inode, 1); } void ufs_delete_inode (struct inode * inode) void ufs_evict_inode(struct inode * inode) { loff_t old_i_size; int want_delete = 0; if (!inode->i_nlink && !is_bad_inode(inode)) want_delete = 1; truncate_inode_pages(&inode->i_data, 0); if (is_bad_inode(inode)) goto no_delete; if (want_delete) { loff_t old_i_size; /*UFS_I(inode)->i_dtime = CURRENT_TIME;*/ lock_kernel(); mark_inode_dirty(inode); Loading @@ -926,9 +929,15 @@ void ufs_delete_inode (struct inode * inode) inode->i_size = 0; if (inode->i_blocks && ufs_truncate(inode, old_i_size)) ufs_warning(inode->i_sb, __func__, "ufs_truncate failed\n"); unlock_kernel(); } invalidate_inode_buffers(inode); end_writeback(inode); if (want_delete) { lock_kernel(); ufs_free_inode (inode); unlock_kernel(); return; no_delete: clear_inode(inode); /* We must guarantee clearing of inode... */ } } fs/ufs/super.c +1 −1 Original line number Diff line number Diff line Loading @@ -1440,7 +1440,7 @@ static const struct super_operations ufs_super_ops = { .alloc_inode = ufs_alloc_inode, .destroy_inode = ufs_destroy_inode, .write_inode = ufs_write_inode, .delete_inode = ufs_delete_inode, .evict_inode = ufs_evict_inode, .put_super = ufs_put_super, .write_super = ufs_write_super, .sync_fs = ufs_sync_fs, Loading fs/ufs/ufs.h +1 −1 Original line number Diff line number Diff line Loading @@ -108,7 +108,7 @@ extern struct inode * ufs_new_inode (struct inode *, int); extern struct inode *ufs_iget(struct super_block *, unsigned long); extern int ufs_write_inode (struct inode *, struct writeback_control *); extern int ufs_sync_inode (struct inode *); extern void ufs_delete_inode (struct inode *); extern void ufs_evict_inode (struct inode *); extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *); extern int ufs_getfrag_block (struct inode *inode, sector_t fragment, struct buffer_head *bh_result, int create); Loading Loading
fs/ufs/ialloc.c +0 −2 Original line number Diff line number Diff line Loading @@ -94,8 +94,6 @@ void ufs_free_inode (struct inode * inode) is_directory = S_ISDIR(inode->i_mode); clear_inode (inode); if (ubh_isclr (UCPI_UBH(ucpi), ucpi->c_iusedoff, bit)) ufs_error(sb, "ufs_free_inode", "bit already cleared for inode %u", ino); else { Loading
fs/ufs/inode.c +26 −17 Original line number Diff line number Diff line Loading @@ -911,13 +911,16 @@ int ufs_sync_inode (struct inode *inode) return ufs_update_inode (inode, 1); } void ufs_delete_inode (struct inode * inode) void ufs_evict_inode(struct inode * inode) { loff_t old_i_size; int want_delete = 0; if (!inode->i_nlink && !is_bad_inode(inode)) want_delete = 1; truncate_inode_pages(&inode->i_data, 0); if (is_bad_inode(inode)) goto no_delete; if (want_delete) { loff_t old_i_size; /*UFS_I(inode)->i_dtime = CURRENT_TIME;*/ lock_kernel(); mark_inode_dirty(inode); Loading @@ -926,9 +929,15 @@ void ufs_delete_inode (struct inode * inode) inode->i_size = 0; if (inode->i_blocks && ufs_truncate(inode, old_i_size)) ufs_warning(inode->i_sb, __func__, "ufs_truncate failed\n"); unlock_kernel(); } invalidate_inode_buffers(inode); end_writeback(inode); if (want_delete) { lock_kernel(); ufs_free_inode (inode); unlock_kernel(); return; no_delete: clear_inode(inode); /* We must guarantee clearing of inode... */ } }
fs/ufs/super.c +1 −1 Original line number Diff line number Diff line Loading @@ -1440,7 +1440,7 @@ static const struct super_operations ufs_super_ops = { .alloc_inode = ufs_alloc_inode, .destroy_inode = ufs_destroy_inode, .write_inode = ufs_write_inode, .delete_inode = ufs_delete_inode, .evict_inode = ufs_evict_inode, .put_super = ufs_put_super, .write_super = ufs_write_super, .sync_fs = ufs_sync_fs, Loading
fs/ufs/ufs.h +1 −1 Original line number Diff line number Diff line Loading @@ -108,7 +108,7 @@ extern struct inode * ufs_new_inode (struct inode *, int); extern struct inode *ufs_iget(struct super_block *, unsigned long); extern int ufs_write_inode (struct inode *, struct writeback_control *); extern int ufs_sync_inode (struct inode *); extern void ufs_delete_inode (struct inode *); extern void ufs_evict_inode (struct inode *); extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *); extern int ufs_getfrag_block (struct inode *inode, sector_t fragment, struct buffer_head *bh_result, int create); Loading