summaryrefslogtreecommitdiffstats
path: root/fs/readdir.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2017-11-14 10:01:49 +0100
committerThomas Gleixner <tglx@linutronix.de>2017-11-14 10:01:49 +0100
commitd4bfeabe9ff7967f4b8c24aabf2de1ce3a909cd9 (patch)
tree6b419b8497c7d57ddec20a3558697ef36ea37b11 /fs/readdir.c
parent8a7a8e1eab929eb3a5b735a788a23b9731139046 (diff)
parentb29c6ef7bb1257853c1e31616d84f55e561cf631 (diff)
downloadlinux-d4bfeabe9ff7967f4b8c24aabf2de1ce3a909cd9.tar.bz2
Merge branch 'linus' into timers/urgent
Get upstream changes so dependent patches can be applied.
Diffstat (limited to 'fs/readdir.c')
-rw-r--r--fs/readdir.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/readdir.c b/fs/readdir.c
index d336db65a33e..1b83b0ad183b 100644
--- a/fs/readdir.c
+++ b/fs/readdir.c
@@ -37,13 +37,12 @@ int iterate_dir(struct file *file, struct dir_context *ctx)
if (res)
goto out;
- if (shared) {
- inode_lock_shared(inode);
- } else {
+ if (shared)
+ res = down_read_killable(&inode->i_rwsem);
+ else
res = down_write_killable(&inode->i_rwsem);
- if (res)
- goto out;
- }
+ if (res)
+ goto out;
res = -ENOENT;
if (!IS_DEADDIR(inode)) {