From 88ef5b238bef9293eabec8f44432e71260690f9a Mon Sep 17 00:00:00 2001 From: Chris Siebenmann Date: Wed, 5 Sep 2018 01:26:56 -0400 Subject: [PATCH] Correctly handle errors from kern_path As a regular kernel function, kern_path() returns errors as negative errnos, such as -ELOOP. zfsctl_snapdir_vget() must convert these into the positive errnos used throughout the ZFS code when it returns them to other ZFS functions so that the ZFS code properly sees them as errors. Reviewed-by: George Melikov Reviewed-by: Brian Behlendorf Signed-off-by: Chris Siebenmann Closes #7764 Closes #7864 --- module/zfs/zfs_ctldir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/zfs/zfs_ctldir.c b/module/zfs/zfs_ctldir.c index 3ff2c101b6..98897fe6e0 100644 --- a/module/zfs/zfs_ctldir.c +++ b/module/zfs/zfs_ctldir.c @@ -1181,7 +1181,7 @@ zfsctl_snapdir_vget(struct super_block *sb, uint64_t objsetid, int gen, goto out; /* Trigger automount */ - error = kern_path(mnt, LOOKUP_FOLLOW|LOOKUP_DIRECTORY, &path); + error = -kern_path(mnt, LOOKUP_FOLLOW|LOOKUP_DIRECTORY, &path); if (error) goto out;