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

Commit 5542aa2f authored by Eric W. Biederman's avatar Eric W. Biederman Committed by Al Viro
Browse files

vfs: Make d_invalidate return void



Now that d_invalidate can no longer fail, stop returning a useless
return code.  For the few callers that checked the return code update
remove the handling of d_invalidate failure.

Reviewed-by: default avatarMiklos Szeredi <miklos@szeredi.hu>
Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 1ffe46d1
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -2423,9 +2423,7 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file,
		goto out_dput;
	}

	err = d_invalidate(dentry);
	if (err)
		goto out_unlock;
	d_invalidate(dentry);

	down_write(&root->fs_info->subvol_sem);

@@ -2510,7 +2508,6 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file,
	btrfs_subvolume_release_metadata(root, &block_rsv, qgroup_reserved);
out_up_write:
	up_write(&root->fs_info->subvol_sem);
out_unlock:
	if (err) {
		spin_lock(&dest->root_item_lock);
		root_flags = btrfs_root_flags(&dest->root_item);
+1 −5
Original line number Diff line number Diff line
@@ -87,8 +87,6 @@ cifs_prime_dcache(struct dentry *parent, struct qstr *name,
		return;

	if (dentry) {
		int err;

		inode = dentry->d_inode;
		if (inode) {
			/*
@@ -105,10 +103,8 @@ cifs_prime_dcache(struct dentry *parent, struct qstr *name,
				goto out;
			}
		}
		err = d_invalidate(dentry);
		d_invalidate(dentry);
		dput(dentry);
		if (err)
			return;
	}

	/*
+3 −12
Original line number Diff line number Diff line
@@ -1346,34 +1346,28 @@ static void check_and_drop(void *_data)
 * d_invalidate - detach submounts, prune dcache, and drop
 * @dentry: dentry to invalidate (aka detach, prune and drop)
 *
 * Try to invalidate the dentry if it turns out to be
 * possible. If there are reasons not to delete it
 * return -EBUSY. On success return 0.
 *
 * no dcache lock.
 *
 * The final d_drop is done as an atomic operation relative to
 * rename_lock ensuring there are no races with d_set_mounted.  This
 * ensures there are no unhashed dentries on the path to a mountpoint.
 */
int d_invalidate(struct dentry *dentry)
void d_invalidate(struct dentry *dentry)
{
	int ret = 0;

	/*
	 * If it's already been dropped, return OK.
	 */
	spin_lock(&dentry->d_lock);
	if (d_unhashed(dentry)) {
		spin_unlock(&dentry->d_lock);
		return 0;
		return;
	}
	spin_unlock(&dentry->d_lock);

	/* Negative dentries can be dropped without further checks */
	if (!dentry->d_inode) {
		d_drop(dentry);
		goto out;
		return;
	}

	for (;;) {
@@ -1399,9 +1393,6 @@ int d_invalidate(struct dentry *dentry)

		cond_resched();
	}

out:
	return ret;
}
EXPORT_SYMBOL(d_invalidate);

+1 −3
Original line number Diff line number Diff line
@@ -1286,9 +1286,7 @@ static int fuse_direntplus_link(struct file *file,
			d_drop(dentry);
		} else if (get_node_id(inode) != o->nodeid ||
			   ((o->attr.mode ^ inode->i_mode) & S_IFMT)) {
			err = d_invalidate(dentry);
			if (err)
				goto out;
			d_invalidate(dentry);
		} else if (is_bad_inode(inode)) {
			err = -EIO;
			goto out;
+5 −5
Original line number Diff line number Diff line
@@ -1306,7 +1306,8 @@ static struct dentry *lookup_dcache(struct qstr *name, struct dentry *dir,
				if (error < 0) {
					dput(dentry);
					return ERR_PTR(error);
				} else if (!d_invalidate(dentry)) {
				} else {
					d_invalidate(dentry);
					dput(dentry);
					dentry = NULL;
				}
@@ -1435,11 +1436,10 @@ static int lookup_fast(struct nameidata *nd,
			dput(dentry);
			return status;
		}
		if (!d_invalidate(dentry)) {
		d_invalidate(dentry);
		dput(dentry);
		goto need_lookup;
	}
	}

	path->mnt = mnt;
	path->dentry = dentry;
Loading