]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
remove wait_a_release/
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Nov 2016 16:47:34 +0000 (17:47 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Nov 2016 16:47:34 +0000 (17:47 +0100)
wait_a_release/ubifs-abort-readdir-upon-error.patch [deleted file]

diff --git a/wait_a_release/ubifs-abort-readdir-upon-error.patch b/wait_a_release/ubifs-abort-readdir-upon-error.patch
deleted file mode 100644 (file)
index 3159ea1..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-From c83ed4c9dbb358b9e7707486e167e940d48bfeed Mon Sep 17 00:00:00 2001
-From: Richard Weinberger <richard@nod.at>
-Date: Wed, 19 Oct 2016 12:43:07 +0200
-Subject: ubifs: Abort readdir upon error
-
-From: Richard Weinberger <richard@nod.at>
-
-commit c83ed4c9dbb358b9e7707486e167e940d48bfeed upstream.
-
-If UBIFS is facing an error while walking a directory, it reports this
-error and ubifs_readdir() returns the error code. But the VFS readdir
-logic does not make the getdents system call fail in all cases. When the
-readdir cursor indicates that more entries are present, the system call
-will just return and the libc wrapper will try again since it also
-knows that more entries are present.
-This causes the libc wrapper to busy loop for ever when a directory is
-corrupted on UBIFS.
-A common approach do deal with corrupted directory entries is
-skipping them by setting the cursor to the next entry. On UBIFS this
-approach is not possible since we cannot compute the next directory
-entry cursor position without reading the current entry. So all we can
-do is setting the cursor to the "no more entries" position and make
-getdents exit.
-
-Signed-off-by: Richard Weinberger <richard@nod.at>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/ubifs/dir.c |    8 +++-----
- 1 file changed, 3 insertions(+), 5 deletions(-)
-
---- a/fs/ubifs/dir.c
-+++ b/fs/ubifs/dir.c
-@@ -350,7 +350,7 @@ static unsigned int vfs_dent_type(uint8_
-  */
- static int ubifs_readdir(struct file *file, struct dir_context *ctx)
- {
--      int err;
-+      int err = 0;
-       struct qstr nm;
-       union ubifs_key key;
-       struct ubifs_dent_node *dent;
-@@ -452,14 +452,12 @@ out:
-       kfree(file->private_data);
-       file->private_data = NULL;
--      if (err != -ENOENT) {
-+      if (err != -ENOENT)
-               ubifs_err(c, "cannot find next direntry, error %d", err);
--              return err;
--      }
-       /* 2 is a special value indicating that there are no more direntries */
-       ctx->pos = 2;
--      return 0;
-+      return err;
- }
- /* Free saved readdir() state when the directory is closed */