fs: readdir: Fix su hide patch for non-iterate filesystems
authorAlberto97 <albertop2197@gmail.com>
Tue, 23 May 2017 19:47:00 +0000 (21:47 +0200)
committerStricted <info@stricted.net>
Thu, 3 May 2018 16:47:07 +0000 (18:47 +0200)
* 3.10 doesn't normally use iterate for filesystems,
  but it was backported in hopes of removing vfs_readdir()
* Because the romnt variable was only set for filesystems
  using iterate, the su hide patches were broken for many
  filesytems like ext4, which still use vfs_readdir()
  instead of iterate_dir() like their mainline counterparts
* Remove the iterate check around setting romnt to fix this

Change-Id: I26426683df0fd199a80f053294f352e31754bec5

fs/readdir.c

index 516fc904513dbceea76bba4bec351cf102d66230..06611e221733d347feb77d45f38dffa3d47c7b87 100644 (file)
@@ -37,9 +37,9 @@ int iterate_dir(struct file *file, struct dir_context *ctx)
 
        res = -ENOENT;
        if (!IS_DEADDIR(inode)) {
+               ctx->romnt = (inode->i_sb->s_flags & MS_RDONLY);
                if (file->f_op->iterate) {
                        ctx->pos = file->f_pos;
-                       ctx->romnt = (inode->i_sb->s_flags & MS_RDONLY);
                        res = file->f_op->iterate(file, ctx);
                        file->f_pos = ctx->pos;
                } else {