Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 2 Nov 2014 18:28:43 +0000 (10:28 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 2 Nov 2014 18:28:43 +0000 (10:28 -0800)
Pull VFS fixes from Al Viro:
 "A bunch of assorted fixes, most of them followups to overlayfs merge"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  ovl: initialize ->is_cursor
  Return short read or 0 at end of a raw device, not EIO
  isofs: don't bother with ->d_op for normal case
  isofs_cmp(): we'll never see a dentry for . or ..
  overlayfs: fix lockdep misannotation
  ovl: fix check for cursor
  overlayfs: barriers for opening upper-layer directory
  rcu: Provide counterpart to rcu_dereference() for non-RCU situations
  staging: android: logger: Fix log corruption regression

1  2 
fs/namei.c

diff --combined fs/namei.c
@@@ -2497,7 -2497,7 +2497,7 @@@ struct dentry *lock_rename(struct dentr
        }
  
        mutex_lock_nested(&p1->d_inode->i_mutex, I_MUTEX_PARENT);
-       mutex_lock_nested(&p2->d_inode->i_mutex, I_MUTEX_CHILD);
+       mutex_lock_nested(&p2->d_inode->i_mutex, I_MUTEX_PARENT2);
        return NULL;
  }
  EXPORT_SYMBOL(lock_rename);
@@@ -3154,8 -3154,7 +3154,8 @@@ static int do_tmpfile(int dfd, struct f
        if (error)
                goto out2;
        audit_inode(pathname, nd->path.dentry, 0);
 -      error = may_open(&nd->path, op->acc_mode, op->open_flag);
 +      /* Don't check for other permissions, the inode was just created */
 +      error = may_open(&nd->path, MAY_OPEN, op->open_flag);
        if (error)
                goto out2;
        file->f_path.mnt = nd->path.mnt;