1. 02 12月, 2008 1 次提交
    • M
      fuse: update interface version · 1f55ed06
      Miklos Szeredi 提交于
      Change interface version to 7.11 after adding the IOCTL and POLL
      messages.
      
      Also clean up the <linux/fuse.h> header a bit:
        - update copyright date to 2008
        - fix checkpatch warning:
            WARNING: Use #include <linux/types.h> instead of <asm/types.h>
        - remove FUSE_MAJOR define, which is not being used any more
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      1f55ed06
  2. 26 11月, 2008 4 次提交
    • T
      fuse: implement poll support · 95668a69
      Tejun Heo 提交于
      Implement poll support.  Polled files are indexed using kh in a RB
      tree rooted at fuse_conn->polled_files.
      
      Client should send FUSE_NOTIFY_POLL notification once after processing
      FUSE_POLL which has FUSE_POLL_SCHEDULE_NOTIFY set.  Sending
      notification unconditionally after the latest poll or everytime file
      content might have changed is inefficient but won't cause malfunction.
      
      fuse_file_poll() can sleep and requires patches from the following
      thread which allows f_op->poll() to sleep.
      
        http://thread.gmane.org/gmane.linux.kernel/726176Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      95668a69
    • T
      fuse: implement unsolicited notification · 8599396b
      Tejun Heo 提交于
      Clients always used to write only in response to read requests.  To
      implement poll efficiently, clients should be able to issue
      unsolicited notifications.  This patch implements basic notification
      support.
      
      Zero fuse_out_header.unique is now accepted and considered unsolicited
      notification and the error field contains notification code.  This
      patch doesn't implement any actual notification.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      8599396b
    • T
      fuse: implement ioctl support · 59efec7b
      Tejun Heo 提交于
      Generic ioctl support is tricky to implement because only the ioctl
      implementation itself knows which memory regions need to be read
      and/or written.  To support this, fuse client can request retry of
      ioctl specifying memory regions to read and write.  Deep copying
      (nested pointers) can be implemented by retrying multiple times
      resolving one depth of dereference at a time.
      
      For security and cleanliness considerations, ioctl implementation has
      restricted mode where the kernel determines data transfer directions
      and sizes using the _IOC_*() macros on the ioctl command.  In this
      mode, retry is not allowed.
      
      For all FUSE servers, restricted mode is enforced.  Unrestricted ioctl
      will be used by CUSE.
      
      Plese read the comment on top of fs/fuse/file.c::fuse_file_do_ioctl()
      for more information.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      59efec7b
    • T
      fuse: move FUSE_MINOR to miscdevice.h · 193da609
      Tejun Heo 提交于
      Move FUSE_MINOR to miscdevice.h.  While at it, de-uglify the file.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      193da609
  3. 16 10月, 2008 2 次提交
  4. 26 7月, 2008 1 次提交
    • M
      fuse: nfs export special lookups · 33670fa2
      Miklos Szeredi 提交于
      Implement the get_parent export operation by sending a LOOKUP request with
      ".." as the name.
      
      Implement looking up an inode by node ID after it has been evicted from
      the cache.  This is done by seding a LOOKUP request with "." as the name
      (for all file types, not just directories).
      
      The filesystem can set the FUSE_EXPORT_SUPPORT flag in the INIT reply, to
      indicate that it supports these special lookups.
      
      Thanks to John Muir for the original implementation of this feature.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Cc: "J. Bruce Fields" <bfields@fieldses.org>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Cc: Matthew Wilcox <matthew@wil.cx>
      Cc: David Teigland <teigland@redhat.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      33670fa2
  5. 13 5月, 2008 1 次提交
    • M
      fuse: add flag to turn on big writes · 78bb6cb9
      Miklos Szeredi 提交于
      Prior to 2.6.26 fuse only supported single page write requests.  In theory all
      fuse filesystem should be able support bigger than 4k writes, as there's
      nothing in the API to prevent it.  Unfortunately there's a known case in
      NTFS-3G where big writes cause filesystem corruption.  There could also be
      other filesystems, where the lack of testing with big write requests would
      result in bugs.
      
      To prevent such problems on a kernel upgrade, disable big writes by default,
      but let filesystems set a flag to turn it on.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Cc: Szabolcs Szakacsits <szaka@ntfs-3g.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      78bb6cb9
  6. 30 11月, 2007 1 次提交
  7. 19 10月, 2007 7 次提交
  8. 17 7月, 2007 1 次提交
  9. 08 12月, 2006 3 次提交
  10. 26 6月, 2006 3 次提交
  11. 02 2月, 2006 1 次提交
    • M
      [PATCH] fuse: fix async read for legacy filesystems · 9cd68455
      Miklos Szeredi 提交于
      While asynchronous reads mean a performance improvement in most cases, if
      the filesystem assumed that reads are synchronous, then async reads may
      degrade performance (filesystem may receive reads out of order, which can
      confuse it's own readahead logic).
      
      With sshfs a 1.5 to 4 times slowdown can be measured.
      
      There's also a need for userspace filesystems to know whether asynchronous
      reads are supported by the kernel or not.
      
      To achive these, negotiate in the INIT request whether async reads will be
      used and the maximum readahead value.  Update interface version to 7.6
      
      If userspace uses a version earlier than 7.6, then disable async reads, and
      set maximum readahead value to the maximum read size, as done in previous
      versions.
      Signed-off-by: NMiklos Szeredi <miklos@szeredi.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9cd68455
  12. 07 1月, 2006 4 次提交
  13. 07 11月, 2005 4 次提交
  14. 31 10月, 2005 1 次提交
  15. 10 9月, 2005 6 次提交