Commit b61d15d5 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Al Viro
Browse files

minix: fix error handling in minix_delete_entry



If minix_prepare_chunk fails, updating c/mtime and marking the
dir inode dirty is wrong, as the inode hasn't been modified.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 35bb6a09
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -297,18 +297,20 @@ int minix_delete_entry(struct minix_dir_entry *de, struct page *page)

	lock_page(page);
	err = minix_prepare_chunk(page, pos, len);
	if (err == 0) {
	if (err) {
		unlock_page(page);
		return err;
	}
	if (sbi->s_version == MINIX_V3)
		((minix3_dirent *)de)->inode = 0;
	else
		de->inode = 0;
	err = dir_commit_chunk(page, pos, len);
	} else {
		unlock_page(page);
	}
	if (err)
		return err;
	inode->i_ctime = inode->i_mtime = current_time(inode);
	mark_inode_dirty(inode);
	return err;
	return 0;
}

int minix_make_empty(struct inode *inode, struct inode *dir)