From: Steve Dickson <steved@redhat.com>
To: Khem Raj <raj.khem@gmail.com>, linux-nfs@vger.kernel.org
Subject: Re: [PATCH] Replace statfs64 with statfs
Date: Wed, 11 Jan 2023 10:56:10 -0500 [thread overview]
Message-ID: <2c88eb01-9df1-fb7d-96ad-5a5ba1bca160@redhat.com> (raw)
In-Reply-To: <20221215213605.4061853-1-raj.khem@gmail.com>
On 12/15/22 4:36 PM, Khem Raj wrote:
> autoconf AC_SYS_LARGEFILE is used by configure to add needed defines
> when needed for enabling 64bit off_t, therefore replacing statfs64 with
> statfs should be functionally same. Additionally this helps compiling
> with latest musl where 64bit LFS functions like statfs64 and friends are
> now moved under _LARGEFILE64_SOURCE feature test macro, this works on
> glibc systems because _GNU_SOURCE macros also enables
> _LARGEFILE64_SOURCE indirectly. This is not case with musl and this
> latest issue is exposed.
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Committed... (tag: nfs-utils-2-6-3-rc6)
steved.
> ---
> support/export/cache.c | 14 +++++++-------
> support/include/nfsd_path.h | 6 +++---
> support/misc/nfsd_path.c | 24 ++++++++++++------------
> utils/exportfs/exportfs.c | 4 ++--
> 4 files changed, 24 insertions(+), 24 deletions(-)
>
> diff --git a/support/export/cache.c b/support/export/cache.c
> index a5823e9..2497d4f 100644
> --- a/support/export/cache.c
> +++ b/support/export/cache.c
> @@ -346,27 +346,27 @@ static int uuid_by_path(char *path, int type, size_t uuidlen, char *uuid)
>
> /* Possible sources of uuid are
> * - blkid uuid
> - * - statfs64 uuid
> + * - statfs uuid
> *
> - * On some filesystems (e.g. vfat) the statfs64 uuid is simply an
> + * On some filesystems (e.g. vfat) the statfs uuid is simply an
> * encoding of the device that the filesystem is mounted from, so
> * it we be very bad to use that (as device numbers change). blkid
> * must be preferred.
> - * On other filesystems (e.g. btrfs) the statfs64 uuid contains
> + * On other filesystems (e.g. btrfs) the statfs uuid contains
> * important info that the blkid uuid cannot contain: This happens
> * when multiple subvolumes are exported (they have the same
> - * blkid uuid but different statfs64 uuids).
> + * blkid uuid but different statfs uuids).
> * We rely on get_uuid_blkdev *knowing* which is which and not returning
> - * a uuid for filesystems where the statfs64 uuid is better.
> + * a uuid for filesystems where the statfs uuid is better.
> *
> */
> - struct statfs64 st;
> + struct statfs st;
> char fsid_val[17];
> const char *blkid_val = NULL;
> const char *val;
> int rc;
>
> - rc = nfsd_path_statfs64(path, &st);
> + rc = nfsd_path_statfs(path, &st);
>
> if (type == 0 && rc == 0) {
> const unsigned long *bad;
> diff --git a/support/include/nfsd_path.h b/support/include/nfsd_path.h
> index 3b73aad..aa1e1dd 100644
> --- a/support/include/nfsd_path.h
> +++ b/support/include/nfsd_path.h
> @@ -7,7 +7,7 @@
> #include <sys/stat.h>
>
> struct file_handle;
> -struct statfs64;
> +struct statfs;
>
> void nfsd_path_init(void);
>
> @@ -18,8 +18,8 @@ char * nfsd_path_prepend_dir(const char *dir, const char *pathname);
> int nfsd_path_stat(const char *pathname, struct stat *statbuf);
> int nfsd_path_lstat(const char *pathname, struct stat *statbuf);
>
> -int nfsd_path_statfs64(const char *pathname,
> - struct statfs64 *statbuf);
> +int nfsd_path_statfs(const char *pathname,
> + struct statfs *statbuf);
>
> char * nfsd_realpath(const char *path, char *resolved_path);
>
> diff --git a/support/misc/nfsd_path.c b/support/misc/nfsd_path.c
> index 65e53c1..c3dea4f 100644
> --- a/support/misc/nfsd_path.c
> +++ b/support/misc/nfsd_path.c
> @@ -184,46 +184,46 @@ nfsd_path_lstat(const char *pathname, struct stat *statbuf)
> return nfsd_run_stat(nfsd_wq, nfsd_lstatfunc, pathname, statbuf);
> }
>
> -struct nfsd_statfs64_data {
> +struct nfsd_statfs_data {
> const char *pathname;
> - struct statfs64 *statbuf;
> + struct statfs *statbuf;
> int ret;
> int err;
> };
>
> static void
> -nfsd_statfs64func(void *data)
> +nfsd_statfsfunc(void *data)
> {
> - struct nfsd_statfs64_data *d = data;
> + struct nfsd_statfs_data *d = data;
>
> - d->ret = statfs64(d->pathname, d->statbuf);
> + d->ret = statfs(d->pathname, d->statbuf);
> if (d->ret < 0)
> d->err = errno;
> }
>
> static int
> -nfsd_run_statfs64(struct xthread_workqueue *wq,
> +nfsd_run_statfs(struct xthread_workqueue *wq,
> const char *pathname,
> - struct statfs64 *statbuf)
> + struct statfs *statbuf)
> {
> - struct nfsd_statfs64_data data = {
> + struct nfsd_statfs_data data = {
> pathname,
> statbuf,
> 0,
> 0
> };
> - xthread_work_run_sync(wq, nfsd_statfs64func, &data);
> + xthread_work_run_sync(wq, nfsd_statfsfunc, &data);
> if (data.ret < 0)
> errno = data.err;
> return data.ret;
> }
>
> int
> -nfsd_path_statfs64(const char *pathname, struct statfs64 *statbuf)
> +nfsd_path_statfs(const char *pathname, struct statfs *statbuf)
> {
> if (!nfsd_wq)
> - return statfs64(pathname, statbuf);
> - return nfsd_run_statfs64(nfsd_wq, pathname, statbuf);
> + return statfs(pathname, statbuf);
> + return nfsd_run_statfs(nfsd_wq, pathname, statbuf);
> }
>
> struct nfsd_realpath_data {
> diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c
> index 0897b22..6d79a5b 100644
> --- a/utils/exportfs/exportfs.c
> +++ b/utils/exportfs/exportfs.c
> @@ -513,7 +513,7 @@ validate_export(nfs_export *exp)
> */
> struct stat stb;
> char *path = exportent_realpath(&exp->m_export);
> - struct statfs64 stf;
> + struct statfs stf;
> int fs_has_fsid = 0;
>
> if (stat(path, &stb) < 0) {
> @@ -528,7 +528,7 @@ validate_export(nfs_export *exp)
> if (!can_test())
> return;
>
> - if (!statfs64(path, &stf) &&
> + if (!statfs(path, &stf) &&
> (stf.f_fsid.__val[0] || stf.f_fsid.__val[1]))
> fs_has_fsid = 1;
>
prev parent reply other threads:[~2023-01-11 15:57 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-15 21:36 [PATCH] Replace statfs64 with statfs Khem Raj
2023-01-11 15:56 ` Steve Dickson [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2c88eb01-9df1-fb7d-96ad-5a5ba1bca160@redhat.com \
--to=steved@redhat.com \
--cc=linux-nfs@vger.kernel.org \
--cc=raj.khem@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox