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

Commit 8d04cc8c authored by Paul Lawrence's avatar Paul Lawrence
Browse files

Revert "ANDROID: Incremental fs: Fix minor bugs"



This reverts commit ed146f65.

Set incfs back to rvc shipping incfs

Bug: 178509184
Test: incfs_test passes
Signed-off-by: default avatarPaul Lawrence <paullawrence@google.com>
Change-Id: I9e2d0ca4f65c4dfaee043cd55491ba3c1a61666b
parent 3ef1500b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -933,7 +933,7 @@ ssize_t incfs_read_data_file_block(struct mem_range dst, struct file *f,
	struct data_file_block block = {};
	struct data_file *df = get_incfs_data_file(f);

	if (!dst.data || !df || !tmp.data)
	if (!dst.data || !df)
		return -EFAULT;

	if (tmp.len < 2 * INCFS_DATA_FILE_BLOCK_SIZE)
+6 −44
Original line number Diff line number Diff line
@@ -470,9 +470,6 @@ static ssize_t pending_reads_read(struct file *f, char __user *buf, size_t len,
	ssize_t result = 0;
	int i = 0;

	if (!mi)
		return -EFAULT;

	if (!incfs_fresh_pending_reads_exist(mi, last_known_read_sn))
		return 0;

@@ -801,17 +798,13 @@ static int read_single_page(struct file *f, struct page *page)
	ssize_t read_result = 0;
	struct data_file *df = get_incfs_data_file(f);
	int result = 0;
	void *page_start;
	void *page_start = kmap(page);
	int block_index;
	int timeout_ms;

	if (!df) {
		SetPageError(page);
		unlock_page(page);
	if (!df)
		return -EBADF;
	}

	page_start = kmap(page);
	offset = page_offset(page);
	block_index = offset / INCFS_DATA_FILE_BLOCK_SIZE;
	size = df->df_size;
@@ -823,10 +816,6 @@ static int read_single_page(struct file *f, struct page *page)
		};

		tmp.data = (u8 *)__get_free_pages(GFP_NOFS, get_order(tmp.len));
		if (!tmp.data) {
			read_result = -ENOMEM;
			goto err;
		}
		bytes_to_read = min_t(loff_t, size - offset, PAGE_SIZE);
		read_result = incfs_read_data_file_block(
			range(page_start, bytes_to_read), f, block_index,
@@ -838,7 +827,6 @@ static int read_single_page(struct file *f, struct page *page)
		read_result = 0;
	}

err:
	if (read_result < 0)
		result = read_result;
	else if (read_result < PAGE_SIZE)
@@ -1518,9 +1506,6 @@ static struct dentry *dir_lookup(struct inode *dir_inode, struct dentry *dentry,
			range((u8 *)dentry->d_name.name, dentry->d_name.len);
	int err = 0;

	if (!mi || !dir_info || !dir_info->n_backing_inode)
		return ERR_PTR(-EBADF);

	if (d_inode(mi->mi_backing_dir_path.dentry) ==
		dir_info->n_backing_inode) {
		/* We do lookup in the FS root. Show pseudo files. */
@@ -1636,7 +1621,7 @@ static int dir_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)

	if (!backing_dentry) {
		err = -EBADF;
		goto path_err;
		goto out;
	}

	if (backing_dentry->d_parent == mi->mi_index_dir) {
@@ -1668,8 +1653,6 @@ static int dir_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
	if (d_really_is_negative(dentry))
		d_drop(dentry);
	path_put(&backing_path);

path_err:
	mutex_unlock(&mi->mi_dir_struct_mutex);
	if (err)
		pr_debug("incfs: %s err:%d\n", __func__, err);
@@ -1725,9 +1708,6 @@ static int dir_unlink(struct inode *dir, struct dentry *dentry)
	struct kstat stat;
	int err = 0;

	if (!mi)
		return -EBADF;

	err = mutex_lock_interruptible(&mi->mi_dir_struct_mutex);
	if (err)
		return err;
@@ -1735,7 +1715,7 @@ static int dir_unlink(struct inode *dir, struct dentry *dentry)
	get_incfs_backing_path(dentry, &backing_path);
	if (!backing_path.dentry) {
		err = -EBADF;
		goto path_err;
		goto out;
	}

	if (backing_path.dentry->d_parent == mi->mi_index_dir) {
@@ -1763,7 +1743,6 @@ static int dir_unlink(struct inode *dir, struct dentry *dentry)
	d_drop(dentry);
out:
	path_put(&backing_path);
path_err:
	if (err)
		pr_debug("incfs: %s err:%d\n", __func__, err);
	mutex_unlock(&mi->mi_dir_struct_mutex);
@@ -1778,9 +1757,6 @@ static int dir_link(struct dentry *old_dentry, struct inode *dir,
	struct path backing_new_path = {};
	int error = 0;

	if (!mi)
		return -EBADF;

	error = mutex_lock_interruptible(&mi->mi_dir_struct_mutex);
	if (error)
		return error;
@@ -1827,9 +1803,6 @@ static int dir_rmdir(struct inode *dir, struct dentry *dentry)
	struct path backing_path = {};
	int err = 0;

	if (!mi)
		return -EBADF;

	err = mutex_lock_interruptible(&mi->mi_dir_struct_mutex);
	if (err)
		return err;
@@ -1837,7 +1810,7 @@ static int dir_rmdir(struct inode *dir, struct dentry *dentry)
	get_incfs_backing_path(dentry, &backing_path);
	if (!backing_path.dentry) {
		err = -EBADF;
		goto path_err;
		goto out;
	}

	if (backing_path.dentry == mi->mi_index_dir) {
@@ -1851,8 +1824,6 @@ static int dir_rmdir(struct inode *dir, struct dentry *dentry)
		d_drop(dentry);
out:
	path_put(&backing_path);

path_err:
	if (err)
		pr_debug("incfs: %s err:%d\n", __func__, err);
	mutex_unlock(&mi->mi_dir_struct_mutex);
@@ -1936,14 +1907,7 @@ static int file_open(struct inode *inode, struct file *file)
	struct path backing_path = {};
	int err = 0;

	if (!mi)
		return -EBADF;

	get_incfs_backing_path(file->f_path.dentry, &backing_path);

	if (!backing_path.dentry)
		return -EBADF;

	backing_file = dentry_open(
		&backing_path, O_RDWR | O_NOATIME | O_LARGEFILE, mi->mi_owner);
	path_put(&backing_path);
@@ -2005,10 +1969,8 @@ static int dentry_revalidate(struct dentry *d, unsigned int flags)

	get_incfs_backing_path(d, &backing_path);
	backing_dentry = backing_path.dentry;
	if (!backing_dentry) {
		result = -EBADF;
	if (!backing_dentry)
		goto out;
	}

	if (d_inode(backing_dentry) != binode) {
		/*