From: Joanne Koong Date: Fri, 27 Sep 2024 00:33:39 +0000 (-0700) Subject: Change FUSE_MAX_MAX_PAGES to FUSE_DEFAULT_MAX_PAGES_LIMIT X-Git-Tag: fuse-3.17.1-rc0~66 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=9069ad9eb6ba908de9cbbdd8ba411cac963101ff;p=qemu-gpiodev%2Flibfuse.git Change FUSE_MAX_MAX_PAGES to FUSE_DEFAULT_MAX_PAGES_LIMIT A recent upstream patch [1] changed FUSE_MAX_MAX_PAGES to FUSE_DEFAULT_MAX_PAGES_LIMIT. Update libfuse to use FUSE_DEFAULT_MAX_PAGES_LIMIT as well instead of FUSE_MAX_MAX_PAGES. [1] https://lore.kernel.org/linux-fsdevel/20240923171311.1561917-1-joannelkoong@gmail.com/T/#t --- diff --git a/lib/fuse_i.h b/lib/fuse_i.h index 1519ce0..2815a8a 100644 --- a/lib/fuse_i.h +++ b/lib/fuse_i.h @@ -196,7 +196,13 @@ int fuse_session_loop_mt_312(struct fuse_session *se, struct fuse_loop_config *c int fuse_loop_cfg_verify(struct fuse_loop_config *config); -#define FUSE_MAX_MAX_PAGES 256 +/* + * This can be changed dynamically on recent kernels through the + * /proc/sys/fs/fuse/max_pages_limit interface. + * + * Older kernels will always use the default value. + */ +#define FUSE_DEFAULT_MAX_PAGES_LIMIT 256 #define FUSE_DEFAULT_MAX_PAGES_PER_REQ 32 /* room needed in buffer to accommodate header */ diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c index 824dbab..819e435 100644 --- a/lib/fuse_lowlevel.c +++ b/lib/fuse_lowlevel.c @@ -2915,19 +2915,19 @@ static unsigned int get_max_pages(void) fd = open("/proc/sys/fs/fuse/max_pages_limit", O_RDONLY); if (fd < 0) - return FUSE_MAX_MAX_PAGES; + return FUSE_DEFAULT_MAX_PAGES_LIMIT; res = read(fd, buf, sizeof(buf) - 1); close(fd); if (res < 0) - return FUSE_MAX_MAX_PAGES; + return FUSE_DEFAULT_MAX_PAGES_LIMIT; buf[res] = '\0'; res = strtol(buf, NULL, 10); - return res < 0 ? FUSE_MAX_MAX_PAGES : res; + return res < 0 ? FUSE_DEFAULT_MAX_PAGES_LIMIT : res; } int fuse_session_receive_buf(struct fuse_session *se, struct fuse_buf *buf)