Module Name: src Committed By: christos Date: Mon Sep 23 12:00:58 UTC 2019
Modified Files: src/lib/libp2k: p2k.c src/lib/libperfuse: ops.c perfuse_priv.h src/lib/libpuffs: null.c puffs.h subr.c src/lib/librefuse: refuse.c src/sys/fs/puffs: puffs_msgif.h puffs_vfsops.c src/tests/fs/puffs/h_dtfs: dtfs_vfsops.c src/usr.sbin/puffs/mount_psshfs: fs.c Log Message: Restore binary compatibility by using the statvfs90 structure internally. To generate a diff of this commit: cvs rdiff -u -r1.70 -r1.71 src/lib/libp2k/p2k.c cvs rdiff -u -r1.87 -r1.88 src/lib/libperfuse/ops.c cvs rdiff -u -r1.37 -r1.38 src/lib/libperfuse/perfuse_priv.h cvs rdiff -u -r1.33 -r1.34 src/lib/libpuffs/null.c cvs rdiff -u -r1.127 -r1.128 src/lib/libpuffs/puffs.h cvs rdiff -u -r1.27 -r1.28 src/lib/libpuffs/subr.c cvs rdiff -u -r1.100 -r1.101 src/lib/librefuse/refuse.c cvs rdiff -u -r1.84 -r1.85 src/sys/fs/puffs/puffs_msgif.h cvs rdiff -u -r1.121 -r1.122 src/sys/fs/puffs/puffs_vfsops.c cvs rdiff -u -r1.3 -r1.4 src/tests/fs/puffs/h_dtfs/dtfs_vfsops.c cvs rdiff -u -r1.24 -r1.25 src/usr.sbin/puffs/mount_psshfs/fs.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/libp2k/p2k.c diff -u src/lib/libp2k/p2k.c:1.70 src/lib/libp2k/p2k.c:1.71 --- src/lib/libp2k/p2k.c:1.70 Tue Apr 25 23:02:48 2017 +++ src/lib/libp2k/p2k.c Mon Sep 23 08:00:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: p2k.c,v 1.70 2017/04/26 03:02:48 riastradh Exp $ */ +/* $NetBSD: p2k.c,v 1.71 2019/09/23 12:00:57 christos Exp $ */ /* * Copyright (c) 2007, 2008, 2009 Antti Kantee. All Rights Reserved. @@ -157,7 +157,7 @@ static volatile sig_atomic_t dodump; static void dumpmp(struct puffs_usermount *pu) { - struct statvfs svfsb; + struct puffs_statvfs svfsb; if (dodump && p2k_fs_statvfs(pu, &svfsb) == 0) { rump_pub_vfs_mount_print(svfsb.f_mntonname, dodump-1); @@ -586,12 +586,14 @@ p2k_setup_diskfs(struct p2k_mount *p2m, } int -p2k_fs_statvfs(struct puffs_usermount *pu, struct statvfs *sbp) +p2k_fs_statvfs(struct puffs_usermount *pu, struct puffs_statvfs *sbp) { struct p2k_mount *p2m = puffs_getspecific(pu); struct mount *mp = p2m->p2m_mp; + struct statvfs sb; + puffs_statvfs_to_statvfs(sbp, &sb); - return rump_pub_vfs_statvfs(mp, sbp); + return rump_pub_vfs_statvfs(mp, &sb); } /*ARGSUSED*/ @@ -606,7 +608,7 @@ p2k_fs_unmount(struct puffs_usermount *p if (fs) { if (ukfs_release(fs, 0) != 0) { - struct statvfs svfsb; + struct puffs_statvfs svfsb; if (p2m->p2m_hasdebug && p2k_fs_statvfs(pu, &svfsb) == 0) { Index: src/lib/libperfuse/ops.c diff -u src/lib/libperfuse/ops.c:1.87 src/lib/libperfuse/ops.c:1.88 --- src/lib/libperfuse/ops.c:1.87 Sat Aug 10 03:08:11 2019 +++ src/lib/libperfuse/ops.c Mon Sep 23 08:00:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ops.c,v 1.87 2019/08/10 07:08:11 manu Exp $ */ +/* $NetBSD: ops.c,v 1.88 2019/09/23 12:00:57 christos Exp $ */ /*- * Copyright (c) 2010-2011 Emmanuel Dreyfus. All rights reserved. @@ -955,7 +955,7 @@ perfuse_fs_unmount(struct puffs_usermoun } int -perfuse_fs_statvfs(struct puffs_usermount *pu, struct statvfs *svfsb) +perfuse_fs_statvfs(struct puffs_usermount *pu, struct puffs_statvfs *svfsb) { struct perfuse_state *ps; perfuse_msg_t *pm; Index: src/lib/libperfuse/perfuse_priv.h diff -u src/lib/libperfuse/perfuse_priv.h:1.37 src/lib/libperfuse/perfuse_priv.h:1.38 --- src/lib/libperfuse/perfuse_priv.h:1.37 Thu Nov 15 21:39:02 2018 +++ src/lib/libperfuse/perfuse_priv.h Mon Sep 23 08:00:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: perfuse_priv.h,v 1.37 2018/11/16 02:39:02 manu Exp $ */ +/* $NetBSD: perfuse_priv.h,v 1.38 2019/09/23 12:00:57 christos Exp $ */ /*- * Copyright (c) 2010-2011 Emmanuel Dreyfus. All rights reserved. @@ -195,7 +195,7 @@ char *perfuse_fs_mount(int, ssize_t); * ops.c - filesystem operations */ int perfuse_fs_unmount(struct puffs_usermount *, int); -int perfuse_fs_statvfs(struct puffs_usermount *, struct statvfs *); +int perfuse_fs_statvfs(struct puffs_usermount *, struct puffs_statvfs *); int perfuse_fs_sync(struct puffs_usermount *, int, const struct puffs_cred *); int perfuse_fs_fhtonode(struct puffs_usermount *, void *, size_t, Index: src/lib/libpuffs/null.c diff -u src/lib/libpuffs/null.c:1.33 src/lib/libpuffs/null.c:1.34 --- src/lib/libpuffs/null.c:1.33 Fri Nov 25 10:02:02 2011 +++ src/lib/libpuffs/null.c Mon Sep 23 08:00:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: null.c,v 1.33 2011/11/25 15:02:02 manu Exp $ */ +/* $NetBSD: null.c,v 1.34 2019/09/23 12:00:57 christos Exp $ */ /* * Copyright (c) 2007 Antti Kantee. All Rights Reserved. @@ -27,7 +27,7 @@ #include <sys/cdefs.h> #if !defined(lint) -__RCSID("$NetBSD: null.c,v 1.33 2011/11/25 15:02:02 manu Exp $"); +__RCSID("$NetBSD: null.c,v 1.34 2019/09/23 12:00:57 christos Exp $"); #endif /* !lint */ /* @@ -191,11 +191,12 @@ puffs_null_setops(struct puffs_ops *pops /*ARGSUSED*/ int -puffs_null_fs_statvfs(struct puffs_usermount *pu, struct statvfs *svfsb) +puffs_null_fs_statvfs(struct puffs_usermount *pu, struct puffs_statvfs *svfsb) { - - if (statvfs(PNPATH(puffs_getroot(pu)), svfsb) == -1) + struct statvfs sb; + if (statvfs(PNPATH(puffs_getroot(pu)), &sb) == -1) return errno; + statvfs_to_puffs_statvfs(&sb, svfsb); return 0; } Index: src/lib/libpuffs/puffs.h diff -u src/lib/libpuffs/puffs.h:1.127 src/lib/libpuffs/puffs.h:1.128 --- src/lib/libpuffs/puffs.h:1.127 Thu Nov 12 12:51:05 2015 +++ src/lib/libpuffs/puffs.h Mon Sep 23 08:00:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: puffs.h,v 1.127 2015/11/12 17:51:05 christos Exp $ */ +/* $NetBSD: puffs.h,v 1.128 2019/09/23 12:00:57 christos Exp $ */ /* * Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved. @@ -162,7 +162,8 @@ extern const struct mntopt puffsmopts[]; /* callbacks for operations */ struct puffs_ops { int (*puffs_fs_unmount)(struct puffs_usermount *, int); - int (*puffs_fs_statvfs)(struct puffs_usermount *, struct statvfs *); + int (*puffs_fs_statvfs)(struct puffs_usermount *, + struct puffs_statvfs *); int (*puffs_fs_sync)(struct puffs_usermount *, int, const struct puffs_cred *); int (*puffs_fs_fhtonode)(struct puffs_usermount *, void *, size_t, @@ -316,7 +317,7 @@ enum { #define PUFFSOP_PROTOS(fsname) \ int fsname##_fs_unmount(struct puffs_usermount *, int); \ int fsname##_fs_statvfs(struct puffs_usermount *, \ - struct statvfs *); \ + struct puffs_statvfs *); \ int fsname##_fs_sync(struct puffs_usermount *, int, \ const struct puffs_cred *cred); \ int fsname##_fs_fhtonode(struct puffs_usermount *, void *, \ @@ -559,8 +560,8 @@ int puffs_dispatch_exec(struct puffs_c * generic/dummy routines applicable for some file systems */ int puffs_fsnop_unmount(struct puffs_usermount *, int); -int puffs_fsnop_statvfs(struct puffs_usermount *, struct statvfs *); -void puffs_zerostatvfs(struct statvfs *); +int puffs_fsnop_statvfs(struct puffs_usermount *, struct puffs_statvfs *); +void puffs_zerostatvfs(struct puffs_statvfs *); int puffs_fsnop_sync(struct puffs_usermount *, int waitfor, const struct puffs_cred *); Index: src/lib/libpuffs/subr.c diff -u src/lib/libpuffs/subr.c:1.27 src/lib/libpuffs/subr.c:1.28 --- src/lib/libpuffs/subr.c:1.27 Thu Feb 17 12:55:36 2011 +++ src/lib/libpuffs/subr.c Mon Sep 23 08:00:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: subr.c,v 1.27 2011/02/17 17:55:36 pooka Exp $ */ +/* $NetBSD: subr.c,v 1.28 2019/09/23 12:00:57 christos Exp $ */ /* * Copyright (c) 2006 Antti Kantee. All Rights Reserved. @@ -27,7 +27,7 @@ #include <sys/cdefs.h> #if !defined(lint) -__RCSID("$NetBSD: subr.c,v 1.27 2011/02/17 17:55:36 pooka Exp $"); +__RCSID("$NetBSD: subr.c,v 1.28 2019/09/23 12:00:57 christos Exp $"); #endif /* !lint */ #include <sys/types.h> @@ -99,7 +99,7 @@ puffs_fsnop_sync(struct puffs_usermount /*ARGSUSED*/ int -puffs_fsnop_statvfs(struct puffs_usermount *dontuse1, struct statvfs *sbp) +puffs_fsnop_statvfs(struct puffs_usermount *dontuse1, struct puffs_statvfs *sbp) { sbp->f_bsize = sbp->f_frsize = sbp->f_iosize = DEV_BSIZE; @@ -142,7 +142,7 @@ puffs_genfs_node_reclaim(struct puffs_us * NULLs from application code */ void -puffs_zerostatvfs(struct statvfs *sbp) +puffs_zerostatvfs(struct puffs_statvfs *sbp) { puffs_fsnop_statvfs(NULL, sbp); Index: src/lib/librefuse/refuse.c diff -u src/lib/librefuse/refuse.c:1.100 src/lib/librefuse/refuse.c:1.101 --- src/lib/librefuse/refuse.c:1.100 Wed Apr 10 17:42:52 2019 +++ src/lib/librefuse/refuse.c Mon Sep 23 08:00:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: refuse.c,v 1.100 2019/04/10 21:42:52 maya Exp $ */ +/* $NetBSD: refuse.c,v 1.101 2019/09/23 12:00:57 christos 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.100 2019/04/10 21:42:52 maya Exp $"); +__RCSID("$NetBSD: refuse.c,v 1.101 2019/09/23 12:00:57 christos Exp $"); #endif /* !lint */ #include <sys/types.h> @@ -1100,19 +1100,21 @@ puffs_fuse_fs_sync(struct puffs_usermoun /* ARGSUSED2 */ static int -puffs_fuse_fs_statvfs(struct puffs_usermount *pu, struct statvfs *svfsb) +puffs_fuse_fs_statvfs(struct puffs_usermount *pu, struct puffs_statvfs *svfsb) { struct fuse *fuse; int ret; + struct statvfs sb; fuse = puffs_getspecific(pu); if (fuse->op.statfs == NULL) { - if ((ret = statvfs(PNPATH(puffs_getroot(pu)), svfsb)) == -1) { + if ((ret = statvfs(PNPATH(puffs_getroot(pu)), &sb)) == -1) { return errno; } } else { - ret = fuse->op.statfs(PNPATH(puffs_getroot(pu)), svfsb); + ret = fuse->op.statfs(PNPATH(puffs_getroot(pu)), &sb); } + statvfs_to_puffs_statvfs(&sb, svfsb); return -ret; } @@ -1200,7 +1202,7 @@ int fuse_mount(struct fuse *fuse, const struct puffs_node *pn_root; struct refusenode *rn_root; struct stat st; - struct statvfs svfsb; + struct puffs_statvfs svfsb; pn_root = newrn(fuse->pu); puffs_setroot(fuse->pu, pn_root); Index: src/sys/fs/puffs/puffs_msgif.h diff -u src/sys/fs/puffs/puffs_msgif.h:1.84 src/sys/fs/puffs/puffs_msgif.h:1.85 --- src/sys/fs/puffs/puffs_msgif.h:1.84 Sun Feb 15 15:21:29 2015 +++ src/sys/fs/puffs/puffs_msgif.h Mon Sep 23 08:00:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: puffs_msgif.h,v 1.84 2015/02/15 20:21:29 manu Exp $ */ +/* $NetBSD: puffs_msgif.h,v 1.85 2019/09/23 12:00:57 christos Exp $ */ /* * Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved. @@ -112,6 +112,119 @@ enum { #define PUFFS_TYPELEN (_VFS_NAMELEN - (sizeof(PUFFS_TYPEPREFIX)+1)) #define PUFFS_NAMELEN (_VFS_MNAMELEN-1) +/* really statvfs90 */ +struct puffs_statvfs { + unsigned long f_flag; /* copy of mount exported flags */ + unsigned long f_bsize; /* file system block size */ + unsigned long f_frsize; /* fundamental file system block size */ + unsigned long f_iosize; /* optimal file system block size */ + + /* The following are in units of f_frsize */ + fsblkcnt_t f_blocks; /* number of blocks in file system, */ + fsblkcnt_t f_bfree; /* free blocks avail in file system */ + fsblkcnt_t f_bavail; /* free blocks avail to non-root */ + fsblkcnt_t f_bresvd; /* blocks reserved for root */ + + fsfilcnt_t f_files; /* total file nodes in file system */ + fsfilcnt_t f_ffree; /* free file nodes in file system */ + fsfilcnt_t f_favail; /* free file nodes avail to non-root */ + fsfilcnt_t f_fresvd; /* file nodes reserved for root */ + + uint64_t f_syncreads; /* count of sync reads since mount */ + uint64_t f_syncwrites; /* count of sync writes since mount */ + + uint64_t f_asyncreads; /* count of async reads since mount */ + uint64_t f_asyncwrites; /* count of async writes since mount */ + + fsid_t f_fsidx; /* NetBSD compatible fsid */ + unsigned long f_fsid; /* Posix compatible fsid */ + unsigned long f_namemax; /* maximum filename length */ + uid_t f_owner; /* user that mounted the file system */ + + uint32_t f_spare[4]; /* spare space */ + + char f_fstypename[_VFS_NAMELEN]; /* fs type name */ + char f_mntonname[_VFS_MNAMELEN]; /* directory on which mounted */ + char f_mntfromname[_VFS_MNAMELEN]; /* mounted file system */ +}; + +#ifndef _KERNEL +#include <string.h> +#endif + +static __inline void +statvfs_to_puffs_statvfs(const struct statvfs *s, struct puffs_statvfs *ps) +{ + ps->f_flag = s->f_flag; + ps->f_bsize = s->f_bsize; + ps->f_frsize = s->f_frsize; + ps->f_iosize = s->f_iosize; + + ps->f_blocks = s->f_blocks; + ps->f_bfree = s->f_bfree; + ps->f_bavail = s->f_bavail; + ps->f_bresvd = s->f_bresvd; + + ps->f_files = s->f_files; + ps->f_ffree = s->f_ffree; + ps->f_favail = s->f_favail; + ps->f_fresvd = s->f_fresvd; + + ps->f_syncreads = s->f_syncreads; + ps->f_syncwrites = s->f_syncwrites; + + ps->f_asyncreads = s->f_asyncreads; + ps->f_asyncwrites = s->f_asyncwrites; + + ps->f_fsidx = s->f_fsidx; + ps->f_fsid = s->f_fsid; + ps->f_namemax = s->f_namemax; + ps->f_owner = s->f_owner; + + memset(ps->f_spare, 0, sizeof(ps->f_spare)); + + memcpy(ps->f_fstypename, s->f_fstypename, sizeof(ps->f_fstypename)); + memcpy(ps->f_mntonname, s->f_mntonname, sizeof(ps->f_mntonname)); + memcpy(ps->f_mntfromname, s->f_mntfromname, sizeof(ps->f_mntfromname)); +} + +static __inline void +puffs_statvfs_to_statvfs(const struct puffs_statvfs *ps, struct statvfs *s) +{ + s->f_flag = ps->f_flag; + s->f_bsize = ps->f_bsize; + s->f_frsize = ps->f_frsize; + s->f_iosize = ps->f_iosize; + + s->f_blocks = ps->f_blocks; + s->f_bfree = ps->f_bfree; + s->f_bavail = ps->f_bavail; + s->f_bresvd = ps->f_bresvd; + + s->f_files = ps->f_files; + s->f_ffree = ps->f_ffree; + s->f_favail = ps->f_favail; + s->f_fresvd = ps->f_fresvd; + + s->f_syncreads = ps->f_syncreads; + s->f_syncwrites = ps->f_syncwrites; + + s->f_asyncreads = ps->f_asyncreads; + s->f_asyncwrites = ps->f_asyncwrites; + + s->f_fsidx = ps->f_fsidx; + s->f_fsid = ps->f_fsid; + s->f_namemax = ps->f_namemax; + s->f_owner = ps->f_owner; + + memset(s->f_spare, 0, sizeof(s->f_spare)); + + memcpy(s->f_fstypename, ps->f_fstypename, sizeof(s->f_fstypename)); + memcpy(s->f_mntonname, ps->f_mntonname, sizeof(s->f_mntonname)); + memcpy(s->f_mntfromname, ps->f_mntfromname, sizeof(s->f_mntfromname)); + memset(s->f_mntfromlabel, 0, sizeof(s->f_mntfromlabel)); +} + /* * Just a weak typedef for code clarity. Additionally, we have a * more appropriate vanity type for puffs: @@ -145,7 +258,7 @@ struct puffs_kargs { uint64_t container; } devunion; - struct statvfs pa_svfsb; + struct puffs_statvfs pa_svfsb; uint32_t pa_time32; @@ -296,7 +409,7 @@ struct puffs_vfsmsg_unmount { struct puffs_vfsmsg_statvfs { struct puffs_req pvfsr_pr; - struct statvfs pvfsr_sb; + struct puffs_statvfs pvfsr_sb; }; struct puffs_vfsmsg_sync { Index: src/sys/fs/puffs/puffs_vfsops.c diff -u src/sys/fs/puffs/puffs_vfsops.c:1.121 src/sys/fs/puffs/puffs_vfsops.c:1.122 --- src/sys/fs/puffs/puffs_vfsops.c:1.121 Mon May 28 17:04:37 2018 +++ src/sys/fs/puffs/puffs_vfsops.c Mon Sep 23 08:00:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: puffs_vfsops.c,v 1.121 2018/05/28 21:04:37 chs Exp $ */ +/* $NetBSD: puffs_vfsops.c,v 1.122 2019/09/23 12:00:57 christos Exp $ */ /* * Copyright (c) 2005, 2006 Antti Kantee. All Rights Reserved. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: puffs_vfsops.c,v 1.121 2018/05/28 21:04:37 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: puffs_vfsops.c,v 1.122 2019/09/23 12:00:57 christos Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -216,8 +216,12 @@ puffs_vfsop_mount(struct mount *mp, cons * after VFS_MOUNT() because we'd deadlock, so handle it * here already. */ - copy_statvfs_info(&args->pa_svfsb, mp); - (void)memcpy(&mp->mnt_stat, &args->pa_svfsb, sizeof(mp->mnt_stat)); + struct statvfs *sb = STATVFSBUF_GET(); + puffs_statvfs_to_statvfs(&args->pa_svfsb, sb); + copy_statvfs_info(sb, mp); + STATVFSBUF_PUT(sb); + + statvfs_to_puffs_statvfs(&mp->mnt_stat, &args->pa_svfsb); KASSERT(curlwp != uvm.pagedaemon_lwp); pmp = kmem_zalloc(sizeof(struct puffs_mount), KM_SLEEP); @@ -498,9 +502,11 @@ puffs_vfsop_statvfs(struct mount *mp, st * XXX: cache the copy in non-error case */ if (!error) { - copy_statvfs_info(&statvfs_msg->pvfsr_sb, mp); - (void)memcpy(sbp, &statvfs_msg->pvfsr_sb, - sizeof(struct statvfs)); + struct statvfs *sb = STATVFSBUF_GET(); + puffs_statvfs_to_statvfs(&statvfs_msg->pvfsr_sb, sb); + copy_statvfs_info(sb, mp); + STATVFSBUF_PUT(sb); + statvfs_to_puffs_statvfs(sbp, &statvfs_msg->pvfsr_sb); } else { copy_statvfs_info(sbp, mp); } Index: src/tests/fs/puffs/h_dtfs/dtfs_vfsops.c diff -u src/tests/fs/puffs/h_dtfs/dtfs_vfsops.c:1.3 src/tests/fs/puffs/h_dtfs/dtfs_vfsops.c:1.4 --- src/tests/fs/puffs/h_dtfs/dtfs_vfsops.c:1.3 Sun Nov 4 18:37:02 2012 +++ src/tests/fs/puffs/h_dtfs/dtfs_vfsops.c Mon Sep 23 08:00:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: dtfs_vfsops.c,v 1.3 2012/11/04 23:37:02 christos Exp $ */ +/* $NetBSD: dtfs_vfsops.c,v 1.4 2019/09/23 12:00:58 christos Exp $ */ /* * Copyright (c) 2006 Antti Kantee. All Rights Reserved. @@ -192,7 +192,7 @@ dtfs_domount(struct puffs_usermount *pu, #define ROUND(a,b) (((a) + ((b)-1)) & ~((b)-1)) #define NFILES 1024*1024 int -dtfs_fs_statvfs(struct puffs_usermount *pu, struct statvfs *sbp) +dtfs_fs_statvfs(struct puffs_usermount *pu, struct puffs_statvfs *sbp) { struct rlimit rlim; struct dtfs_mount *dtm; @@ -201,7 +201,7 @@ dtfs_fs_statvfs(struct puffs_usermount * dtm = puffs_getspecific(pu); pgsize = getpagesize(); - memset(sbp, 0, sizeof(struct statvfs)); + memset(sbp, 0, sizeof(struct puffs_statvfs)); /* * Use datasize rlimit as an _approximation_ for free size. Index: src/usr.sbin/puffs/mount_psshfs/fs.c diff -u src/usr.sbin/puffs/mount_psshfs/fs.c:1.24 src/usr.sbin/puffs/mount_psshfs/fs.c:1.25 --- src/usr.sbin/puffs/mount_psshfs/fs.c:1.24 Wed Jun 22 00:03:23 2011 +++ src/usr.sbin/puffs/mount_psshfs/fs.c Mon Sep 23 08:00:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: fs.c,v 1.24 2011/06/22 04:03:23 mrg Exp $ */ +/* $NetBSD: fs.c,v 1.25 2019/09/23 12:00:58 christos Exp $ */ /* * Copyright (c) 2006-2009 Antti Kantee. All Rights Reserved. @@ -27,7 +27,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: fs.c,v 1.24 2011/06/22 04:03:23 mrg Exp $"); +__RCSID("$NetBSD: fs.c,v 1.25 2019/09/23 12:00:58 christos Exp $"); #endif /* !lint */ #include <err.h> @@ -171,7 +171,7 @@ psshfs_handshake(struct puffs_usermount } int -psshfs_fs_statvfs(struct puffs_usermount *pu, struct statvfs *sbp) +psshfs_fs_statvfs(struct puffs_usermount *pu, struct puffs_statvfs *sbp) { PSSHFSAUTOVAR(pu); uint64_t tmpval;