Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Upgrade to 4.4.50-rt62
[kvmfornfv.git]
/
kernel
/
fs
/
ubifs
/
dir.c
diff --git
a/kernel/fs/ubifs/dir.c
b/kernel/fs/ubifs/dir.c
index
e49bd28
..
f5d5ee4
100644
(file)
--- a/
kernel/fs/ubifs/dir.c
+++ b/
kernel/fs/ubifs/dir.c
@@
-350,7
+350,7
@@
static unsigned int vfs_dent_type(uint8_t type)
*/
static int ubifs_readdir(struct file *file, struct dir_context *ctx)
{
*/
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;
struct qstr nm;
union ubifs_key key;
struct ubifs_dent_node *dent;
@@
-452,14
+452,20
@@
out:
kfree(file->private_data);
file->private_data = NULL;
kfree(file->private_data);
file->private_data = NULL;
- if (err != -ENOENT)
{
+ if (err != -ENOENT)
ubifs_err(c, "cannot find next direntry, error %d", err);
ubifs_err(c, "cannot find next direntry, error %d", err);
- return err;
- }
+ else
+ /*
+ * -ENOENT is a non-fatal error in this context, the TNC uses
+ * it to indicate that the cursor moved past the current directory
+ * and readdir() has to stop.
+ */
+ err = 0;
+
/* 2 is a special value indicating that there are no more direntries */
ctx->pos = 2;
/* 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 */
}
/* Free saved readdir() state when the directory is closed */