1. 30 Jun, 2009 4 commits
    • John Muir's avatar
      fuse: invalidation reverse calls · 3b463ae0
      John Muir authored
      
      
      Add notification messages that allow the filesystem to invalidate VFS
      caches.
      
      Two notifications are added:
      
       1) inode invalidation
      
         - invalidate cached attributes
         - invalidate a range of pages in the page cache (this is optional)
      
       2) dentry invalidation
      
         - try to invalidate a subtree in the dentry cache
      
      Care must be taken while accessing the 'struct super_block' for the
      mount, as it can go away while an invalidation is in progress.  To
      prevent this, introduce a rw-semaphore, that is taken for read during
      the invalidation and taken for write in the ->kill_sb callback.
      
      Cc: Csaba Henk <csaba@gluster.com>
      Cc: Anand Avati <avati@zresearch.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      3b463ae0
    • Miklos Szeredi's avatar
      fuse: allow umask processing in userspace · e0a43ddc
      Miklos Szeredi authored
      
      
      This patch lets filesystems handle masking the file mode on creation.
      This is needed if filesystem is using ACLs.
      
       - The CREATE, MKDIR and MKNOD requests are extended with a "umask"
         parameter.
      
       - A new FUSE_DONT_MASK flag is added to the INIT request/reply.  With
         this the filesystem may request that the create mode is not masked.
      
      CC: Jean-Pierre André <jean-pierre.andre@wanadoo.fr>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      e0a43ddc
    • Miklos Szeredi's avatar
      fuse: fix bad return value in fuse_file_poll() · 201fa69a
      Miklos Szeredi authored
      
      
      Fix fuse_file_poll() which returned a -errno value instead of a poll
      mask.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      CC: stable@kernel.org
      201fa69a
    • Csaba Henk's avatar
      fuse: fix return value of fuse_dev_write() · b4c458b3
      Csaba Henk authored
      
      
      On 64 bit systems -- where sizeof(ssize_t) > sizeof(int) -- the following test
      exposes a bug due to a non-careful return of an int or unsigned value:
      
      implement a FUSE filesystem which sends an unsolicited notification to
      the kernel with invalid opcode. The respective write to /dev/fuse
      will return (1 << 32) - EINVAL with errno == 0 instead of -1 with
      errno == EINVAL.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      CC: stable@kernel.org
      b4c458b3
  2. 24 Jun, 2009 36 commits