ecryptfs: fixed testing of file descriptor flags
[pandora-kernel.git] / fs / ecryptfs / file.c
index 99259f8..e069e78 100644 (file)
@@ -199,8 +199,8 @@ static int ecryptfs_open(struct inode *inode, struct file *file)
                        ecryptfs_dentry->d_name.name, rc);
                goto out_free;
        }
-       if ((ecryptfs_inode_to_private(inode)->lower_file->f_flags & O_RDONLY)
-           && !(file->f_flags & O_RDONLY)) {
+       if ((ecryptfs_inode_to_private(inode)->lower_file->f_flags & O_ACCMODE)
+           == O_RDONLY && (file->f_flags & O_ACCMODE) != O_RDONLY) {
                rc = -EPERM;
                printk(KERN_WARNING "%s: Lower persistent file is RO; eCryptfs "
                       "file must hence be opened RO\n", __func__);