diff options
| author | David S. Miller <davem@davemloft.net> | 2008-07-05 23:08:07 -0700 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2008-07-05 23:08:07 -0700 |
| commit | ea2aca084ba82aaf7c148d04914ceed8758ce08a (patch) | |
| tree | dcb3f4f849cf48deac2dd3bafd5c2cd2f0e7dc79 /fs/block_dev.c | |
| parent | f3032be921cd126615ce3bfd7084e3d319f3f892 (diff) | |
| parent | c5a78ac00c400df29645e59938700301efb371d0 (diff) | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
Documentation/feature-removal-schedule.txt
drivers/net/wan/hdlc_fr.c
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
Diffstat (limited to 'fs/block_dev.c')
| -rw-r--r-- | fs/block_dev.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c index 470c10ceb0fb..10d8a0aa871a 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -931,8 +931,16 @@ static int do_open(struct block_device *bdev, struct file *file, int for_part) struct gendisk *disk; int ret; int part; + int perm = 0; - ret = devcgroup_inode_permission(bdev->bd_inode, file->f_mode); + if (file->f_mode & FMODE_READ) + perm |= MAY_READ; + if (file->f_mode & FMODE_WRITE) + perm |= MAY_WRITE; + /* + * hooks: /n/, see "layering violations". + */ + ret = devcgroup_inode_permission(bdev->bd_inode, perm); if (ret != 0) return ret; |
