Module Name: src Committed By: pho Date: Sat Jan 22 07:59:33 UTC 2022
Modified Files: src/lib/librefuse: refuse.c Log Message: Do not call fuse_operations.getattr() before initializing filesystem To generate a diff of this commit: cvs rdiff -u -r1.106 -r1.107 src/lib/librefuse/refuse.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/librefuse/refuse.c diff -u src/lib/librefuse/refuse.c:1.106 src/lib/librefuse/refuse.c:1.107 --- src/lib/librefuse/refuse.c:1.106 Sat Jan 22 07:58:32 2022 +++ src/lib/librefuse/refuse.c Sat Jan 22 07:59:33 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: refuse.c,v 1.106 2022/01/22 07:58:32 pho Exp $ */ +/* $NetBSD: refuse.c,v 1.107 2022/01/22 07:59:33 pho Exp $ */ /* * Copyright © 2007 Alistair Crooks. All rights reserved. @@ -31,7 +31,7 @@ #include <sys/cdefs.h> #if !defined(lint) -__RCSID("$NetBSD: refuse.c,v 1.106 2022/01/22 07:58:32 pho Exp $"); +__RCSID("$NetBSD: refuse.c,v 1.107 2022/01/22 07:59:33 pho Exp $"); #endif /* !lint */ /* We emit a compiler warning for anyone including <fuse.h> without @@ -1207,7 +1207,6 @@ int fuse_mount(struct fuse *fuse, const struct puffs_pathobj *po_root; struct puffs_node *pn_root; struct refusenode *rn_root; - struct stat st; struct puffs_statvfs svfsb; pn_root = newrn(fuse->pu); @@ -1225,10 +1224,11 @@ int fuse_mount(struct fuse *fuse, const puffs_vattr_null(&pn_root->pn_va); pn_root->pn_va.va_type = VDIR; pn_root->pn_va.va_mode = 0755; - if (fuse->op.getattr) - if (fuse->op.getattr(po_root->po_path, &st) == 0) - puffs_stat2vattr(&pn_root->pn_va, &st); - assert(pn_root->pn_va.va_type == VDIR); + /* It might be tempting to call op.getattr("/") here to + * populate pn_root->pa_va, but that would mean invoking an + * operation callback without initializing the filesystem. We + * cannot call op.init() either, because that is supposed to + * be called right before entering the main loop. */ puffs_set_prepost(fuse->pu, set_fuse_context_pid, NULL);