[Virtio-fs] [PATCH] virtiofsd: fix incorrect error handling in lo_do_lookup
Dr. David Alan Gilbert
dgilbert at redhat.com
Tue Jun 11 17:38:33 UTC 2019
* Eric Ren (renzhen at linux.alibaba.com) wrote:
> Signed-off-by: Eric Ren <renzhen at linux.alibaba.com>
> ---
> contrib/virtiofsd/passthrough_ll.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/contrib/virtiofsd/passthrough_ll.c b/contrib/virtiofsd/passthrough_ll.c
> index 574e209d95..78716c8aca 100644
> --- a/contrib/virtiofsd/passthrough_ll.c
> +++ b/contrib/virtiofsd/passthrough_ll.c
> @@ -670,7 +670,6 @@ static int lo_do_lookup(fuse_req_t req, fuse_ino_t parent, const char *name,
> close(newfd);
> newfd = -1;
> } else {
> - saverr = ENOMEM;
> inode = calloc(1, sizeof(struct lo_inode));
> if (!inode)
> goto out_err;
Can you explain why you remove that? How does it
get a sensible errno in this case?
> @@ -691,7 +690,9 @@ static int lo_do_lookup(fuse_req_t req, fuse_ino_t parent, const char *name,
> res = fstatat(inode->fd, "", &e->attr,
> AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);
> if (res == -1) {
> + saverr = errno;
> unref_inode(lo, inode, 1);
> + errno = saverr;
That one I agree with.
Dave
> goto out_err;
> }
>
> --
> 2.17.2 (Apple Git-113)
>
> _______________________________________________
> Virtio-fs mailing list
> Virtio-fs at redhat.com
> https://www.redhat.com/mailman/listinfo/virtio-fs
--
Dr. David Alan Gilbert / dgilbert at redhat.com / Manchester, UK
More information about the Virtio-fs
mailing list