From a82e300d0cd72f15bda20b3137ab8f9426c81212 Mon Sep 17 00:00:00 2001 From: Daniel Rosenberg Date: Wed, 6 Jul 2022 14:57:14 -0700 Subject: [PATCH] UPSTREAM: ANDROID: fuse: Don't use readdirplus w/ nodeid 0 If we have a nodeid of 0, we've probably got a backing inode, and a regular getattr will be fast. Otherwise, userspace is likely ill suited to properly handle a readdirplus anyways. Test: fuse_test Bug: 219958836 Signed-off-by: Daniel Rosenberg Change-Id: I02f031d87dcc5fcbe1e080e4f8ec92187b00fe2d --- fs/fuse/readdir.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/fuse/readdir.c b/fs/fuse/readdir.c index 06446ee6e9d0..fb795bc4b286 100644 --- a/fs/fuse/readdir.c +++ b/fs/fuse/readdir.c @@ -20,6 +20,8 @@ static bool fuse_use_readdirplus(struct inode *dir, struct dir_context *ctx) if (!fc->do_readdirplus) return false; + if (fi->nodeid == 0) + return false; if (!fc->readdirplus_auto) return true; if (test_and_clear_bit(FUSE_I_ADVISE_RDPLUS, &fi->state))