diff options
-rw-r--r-- | sys/ufs/ufs/ufs_ihash.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/sys/ufs/ufs/ufs_ihash.c b/sys/ufs/ufs/ufs_ihash.c index 3e299361a5b..1c31867e876 100644 --- a/sys/ufs/ufs/ufs_ihash.c +++ b/sys/ufs/ufs/ufs_ihash.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ufs_ihash.c,v 1.29 2024/09/10 12:14:26 claudio Exp $ */ +/* $OpenBSD: ufs_ihash.c,v 1.30 2024/09/11 08:29:55 claudio Exp $ */ /* $NetBSD: ufs_ihash.c,v 1.3 1996/02/09 22:36:04 christos Exp $ */ /* @@ -109,10 +109,25 @@ loop: * the previously committed vdoom() or this should be * dealt with so this can't happen. */ +#ifdef FUSE + /* + * XXX for whatever stupid reason fuse decided to + * use ufs inodes and with this ufs_ihashget. + * fuse needs to grow up and use its own inode + * structure and hash. + */ + if (vp->v_tag == VT_FUSEFS) + return (vp); +#endif if (VTOI(vp) != ip || (( #ifdef EXT2FS - IS_EXT2_VNODE(ip->i_vnode) ? ip->i_e2fs_nlink <= 0 : + /* + * XXX DIP does not cover ext2fs so hack + * around this for now since this is using + * ufs_ihashget as well. + */ + IS_EXT2_VNODE(vp) ? ip->i_e2fs_nlink <= 0 : #endif DIP(ip, nlink) <= 0) && (vp->v_mount->mnt_flag & MNT_RDONLY) == 0)) { |