Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58e8268c authored by Al Viro's avatar Al Viro
Browse files

switch ufs to ->evict_inode()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent deee3ce4
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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 {
+26 −17
Original line number Diff line number Diff line
@@ -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);
@@ -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... */
	}
}
+1 −1
Original line number Diff line number Diff line
@@ -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,
+1 −1
Original line number Diff line number Diff line
@@ -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);