From 49de4585a650c5e70cace733cb466fd007526f80 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Thu, 28 May 2020 10:49:51 +0200 Subject: libdiskfs,libnetfs: add missing io_pathconf cases * libdiskfs/io-pathconf.c (diskfs_S_io_pathconf): For _PC_REC_MAX_XFER_SIZE, _PC_REC_INCR_XFER_SIZE, _PC_SYMLINK_MAX, return undefined. For _PC_2_SYMLINKS, return 1. For _PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, _PC_ALLOC_SIZE_MIN, return page size. * libnetfs/io-pathconf.c (netfs_S_io_pathconf): Likewise. --- libdiskfs/io-pathconf.c | 10 ++++++++++ libnetfs/io-pathconf.c | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/libdiskfs/io-pathconf.c b/libdiskfs/io-pathconf.c index 38e277c3..7b6ff7fb 100644 --- a/libdiskfs/io-pathconf.c +++ b/libdiskfs/io-pathconf.c @@ -42,6 +42,9 @@ diskfs_S_io_pathconf (struct protid *cred, case _PC_VDISABLE: case _PC_SOCK_MAXBUF: case _PC_PATH_MAX: + case _PC_REC_MAX_XFER_SIZE: + case _PC_REC_INCR_XFER_SIZE: + case _PC_SYMLINK_MAX: *value = -1; break; @@ -55,6 +58,7 @@ diskfs_S_io_pathconf (struct protid *cred, break; case _PC_NO_TRUNC: /* enforced in diskfs_lookup */ + case _PC_2_SYMLINKS: *value = 1; /* diskfs_name_max >= 0; */ /* see above */ break; @@ -72,6 +76,12 @@ diskfs_S_io_pathconf (struct protid *cred, *value = 32; break; + case _PC_REC_MIN_XFER_SIZE: + case _PC_REC_XFER_ALIGN: + case _PC_ALLOC_SIZE_MIN: + *value = vm_page_size; + break; + default: return EINVAL; } diff --git a/libnetfs/io-pathconf.c b/libnetfs/io-pathconf.c index 2fd3f5bc..0791243e 100644 --- a/libnetfs/io-pathconf.c +++ b/libnetfs/io-pathconf.c @@ -40,6 +40,9 @@ netfs_S_io_pathconf (struct protid *user, case _PC_VDISABLE: case _PC_SOCK_MAXBUF: case _PC_PATH_MAX: + case _PC_REC_MAX_XFER_SIZE: + case _PC_REC_INCR_XFER_SIZE: + case _PC_SYMLINK_MAX: *value = -1; break; @@ -49,6 +52,7 @@ netfs_S_io_pathconf (struct protid *user, case _PC_CHOWN_RESTRICTED: case _PC_NO_TRUNC: /* look at string_t trunc behavior in MiG */ + case _PC_2_SYMLINKS: *value = 1; break; @@ -62,6 +66,12 @@ netfs_S_io_pathconf (struct protid *user, *value = 32; break; + case _PC_REC_MIN_XFER_SIZE: + case _PC_REC_XFER_ALIGN: + case _PC_ALLOC_SIZE_MIN: + *value = vm_page_size; + break; + default: return EINVAL; } -- cgit v1.2.3