The quilt patch titled Subject: proc-report-open-files-as-size-in-stat-for-proc-pid-fd-v4 has been removed from the -mm tree. Its filename was proc-report-open-files-as-size-in-stat-for-proc-pid-fd-v4.patch This patch was dropped because it was folded into proc-report-open-files-as-size-in-stat-for-proc-pid-fd.patch ------------------------------------------------------ From: Ivan Babrou <ivan@xxxxxxxxxxxxxx> Subject: proc-report-open-files-as-size-in-stat-for-proc-pid-fd-v4 Date: Mon, 24 Oct 2022 10:31:40 -0700 return errno from proc_fd_getattr() instead of setting negative size Link: https://lkml.kernel.org/r/20221024173140.30673-1-ivan@xxxxxxxxxxxxxx Signed-off-by: Ivan Babrou <ivan@xxxxxxxxxxxxxx> Cc: Alexey Dobriyan <adobriyan@xxxxxxxxx> Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: Christoph Anton Mitterer <mail@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> Cc: David Hildenbrand <david@xxxxxxxxxx> Cc: David Laight <David.Laight@xxxxxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Jonathan Corbet <corbet@xxxxxxx> Cc: Kalesh Singh <kaleshsingh@xxxxxxxxxx> Cc: Mike Rapoport <rppt@xxxxxxxxxx> Cc: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> Cc: Theodore Ts'o <tytso@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/proc/fd.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) --- a/fs/proc/fd.c~proc-report-open-files-as-size-in-stat-for-proc-pid-fd-v4 +++ a/fs/proc/fd.c @@ -280,11 +280,10 @@ out: return 0; } -static int proc_readfd_count(struct inode *inode) +static int proc_readfd_count(struct inode *inode, loff_t *count) { struct task_struct *p = get_proc_task(inode); struct fdtable *fdt; - unsigned int open_fds = 0; if (!p) return -ENOENT; @@ -294,7 +293,7 @@ static int proc_readfd_count(struct inod rcu_read_lock(); fdt = files_fdtable(p->files); - open_fds = bitmap_weight(fdt->open_fds, fdt->max_fds); + *count = bitmap_weight(fdt->open_fds, fdt->max_fds); rcu_read_unlock(); } @@ -302,7 +301,7 @@ static int proc_readfd_count(struct inod put_task_struct(p); - return open_fds; + return 0; } static int proc_readfd(struct file *file, struct dir_context *ctx) @@ -350,14 +349,18 @@ static int proc_fd_getattr(struct user_n u32 request_mask, unsigned int query_flags) { struct inode *inode = d_inode(path->dentry); + int rv = 0; generic_fillattr(&init_user_ns, inode, stat); /* If it's a directory, put the number of open fds there */ - if (S_ISDIR(inode->i_mode)) - stat->size = proc_readfd_count(inode); + if (S_ISDIR(inode->i_mode)) { + rv = proc_readfd_count(inode, &stat->size); + if (rv < 0) + return rv; + } - return 0; + return rv; } const struct inode_operations proc_fd_inode_operations = { _ Patches currently in -mm which might be from ivan@xxxxxxxxxxxxxx are proc-report-open-files-as-size-in-stat-for-proc-pid-fd.patch