btrfs: btrfs_permission's RO check shouldn't apply to device nodes
authorJeff Mahoney <jeffm@suse.de>
Mon, 15 Aug 2011 17:27:21 +0000 (17:27 +0000)
committerChris Mason <chris.mason@oracle.com>
Thu, 18 Aug 2011 14:16:03 +0000 (10:16 -0400)
commitcb6db4e57632ba8589cc2f9fe1d0aa9116b87ab8
tree6cfeb1989e0ffdd9b536f908eb97269d0ddcbe65
parent93ee7a9340d64f20295aacc3fb6a22b759323280
btrfs: btrfs_permission's RO check shouldn't apply to device nodes

This patch tightens the read-only access checks in btrfs_permission to
 match the constraints in inode_permission. Currently, even though the
 device node itself will be unmodified, read-write access to device nodes
 is denied to when the device node resides on a read-only subvolume or a
 is a file that has been marked read-only by the btrfs conversion utility.

 With this patch applied, the check only affects regular files,
 directories, and symlinks. It also restructures the code a bit so that
 we don't duplicate the MAY_WRITE check for both tests.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/inode.c