if (GNOME_VFS_OK!=(errvfsresult=captive_file_new_open(&captive_file_object,capfuse_captive_vfs_object,path,
GNOME_VFS_OPEN_RANDOM
- || (fi->flags&(O_RDONLY|O_RDWR) ? 0 : GNOME_VFS_OPEN_READ)
- || (fi->flags&(O_WRONLY|O_RDWR|O_APPEND) ? 0 : GNOME_VFS_OPEN_WRITE))))
+ || (!(fi->flags&(O_RDONLY|O_RDWR)) ? 0 : GNOME_VFS_OPEN_READ)
+ || (!(fi->flags&(O_WRONLY|O_RDWR|O_APPEND)) ? 0 : GNOME_VFS_OPEN_WRITE))))
return -gnomevfsresult_to_errno(errvfsresult);
fi->fh=(unsigned long)captive_file_object;