1. 24 1月, 2014 1 次提交
  2. 11 12月, 2013 1 次提交
    • A
      nfsd: don't return high mode bits · 6e14b46b
      Albert Fluegel 提交于
      The Linux NFS server replies among other things to a "Check access permission"
      the following:
      
      NFS:    File type = 2 (Directory)
      NFS:    Mode = 040755
      
      A netapp server replies here:
      NFS:    File type = 2 (Directory)
      NFS:    Mode = 0755
      
      The RFC 1813 i read:
         fattr3
      
            struct fattr3 {
               ftype3     type;
               mode3      mode;
               uint32     nlink;
      ...
      For the mode bits only the lowest 9 are defined in the RFC
      
      As far as I can tell, knfsd has always done this, so apparently it's harmless.
      Nevertheless, it appears to be wrong.
      
      Note this is already correct in the NFSv4 case, only v2 and v3 need
      fixing.
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      6e14b46b
  3. 26 2月, 2013 1 次提交
  4. 13 2月, 2013 2 次提交
  5. 18 12月, 2012 1 次提交
  6. 11 12月, 2012 1 次提交
  7. 13 4月, 2012 1 次提交
    • A
      nfsd: fix compose_entry_fh() failure exits · efe39651
      Al Viro 提交于
      Restore the original logics ("fail on mountpoints, negatives and in
      case of fh_compose() failures").  Since commit 8177e (nfsd: clean up
      readdirplus encoding) that got broken -
      	rv = fh_compose(fhp, exp, dchild, &cd->fh);
      	if (rv)
      	       goto out;
      	if (!dchild->d_inode)
      		goto out;
      	rv = 0;
      out:
      is equivalent to
      	rv = fh_compose(fhp, exp, dchild, &cd->fh);
      out:
      and the second check has no effect whatsoever...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      efe39651
  8. 19 5月, 2011 1 次提交
  9. 31 3月, 2011 1 次提交
  10. 09 12月, 2010 1 次提交
    • N
      nfsd: Fix possible BUG_ON firing in set_change_info · c1ac3ffc
      Neil Brown 提交于
      If vfs_getattr in fill_post_wcc returns an error, we don't
      set fh_post_change.
      For NFSv4, this can result in set_change_info triggering a BUG_ON.
      i.e. fh_post_saved being zero isn't really a bug.
      
      So:
       - instead of BUGging when fh_post_saved is zero, just clear ->atomic.
       - if vfs_getattr fails in fill_post_wcc, take a copy of i_ctime anyway.
         This will be used i seg_change_info, but not overly trusted.
       - While we are there, remove the pointless 'if' statements in set_change_info.
         There is no harm setting all the values.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Cc: stable@kernel.org
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      c1ac3ffc
  11. 16 12月, 2009 1 次提交
  12. 15 12月, 2009 2 次提交
  13. 15 11月, 2009 1 次提交
  14. 05 9月, 2009 2 次提交
  15. 29 4月, 2009 1 次提交
    • J
      nfsd: support ext4 i_version · c654b8a9
      J. Bruce Fields 提交于
      ext4 supports a real NFSv4 change attribute, which is bumped whenever
      the ctime would be updated, including times when two updates arrive
      within a jiffy of each other.  (Note that although ext4 has space for
      nanosecond-precision ctime, the real resolution is lower: it actually
      uses jiffies as the time-source.)  This ensures clients will invalidate
      their caches when they need to.
      
      There is some fear that keeping the i_version up-to-date could have
      performance drawbacks, so for now it's turned on only by a mount option.
      We hope to do something better eventually.
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      Cc: Theodore Tso <tytso@mit.edu>
      c654b8a9
  16. 15 2月, 2008 1 次提交
  17. 02 2月, 2008 4 次提交
  18. 14 1月, 2008 1 次提交
  19. 10 10月, 2007 1 次提交
    • P
      knfsd: 64 bit ino support for NFS server · 40ee5dc6
      Peter Staubach 提交于
      Modify the NFS server code to support 64 bit ino's, as
      appropriate for the system and the NFS protocol version.
      
      The gist of the changes is to query the underlying file system
      for attributes and not just to use the cached attributes in the
      inode.  For this specific purpose, the inode only contains an
      ino field which unsigned long, which is large enough on 64 bit
      platforms, but is not large enough on 32 bit platforms.
      
      I haven't been able to find any reason why ->getattr can't be called
      while i_mutex.  The specification indicates that i_mutex is not
      required to be held in order to invoke ->getattr, but it doesn't say
      that i_mutex can't be held while invoking ->getattr.
      
      I also haven't come to any conclusions regarding the value of
      lease_get_mtime() and whether it should or should not be invoked
      by fill_post_wcc() too.  I chose not to change this because I
      thought that it was safer to leave well enough alone.  If we
      decide to make a change, it can be done separately.
      Signed-off-by: NPeter Staubach <staubach@redhat.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      Acked-by: NNeil Brown <neilb@suse.de>
      40ee5dc6
  20. 10 5月, 2007 2 次提交
  21. 28 3月, 2007 1 次提交
  22. 15 2月, 2007 1 次提交
  23. 27 1月, 2007 1 次提交
    • N
      [PATCH] knfsd: Fix type mismatch with filldir_t used by nfsd · a0ad13ef
      NeilBrown 提交于
      nfsd defines a type 'encode_dent_fn' which is much like 'filldir_t' except
      that the first pointer is 'struct readdir_cd *' rather than 'void *'.  It
      then casts encode_dent_fn points to 'filldir_t' as needed.  This hides any
      other type mismatches between the two such as the fact that the 'ino' arg
      recently changed from ino_t to u64.
      
      So: get rid of 'encode_dent_fn', get rid of the cast of the function type,
      change the first arg of various functions from 'struct readdir_cd *' to
      'void *', and live with the fact that we have a little less type checking
      on the calling of these functions now.  Less internal (to nfsd) checking
      offset by more external checking, which is more important.
      
      Thanks to Gabriel Paubert <paubert@iram.es> for discovering this and
      providing an initial patch.
      Signed-off-by: NGabriel Paubert <paubert@iram.es>
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a0ad13ef
  24. 08 12月, 2006 1 次提交
  25. 21 10月, 2006 1 次提交
  26. 04 10月, 2006 3 次提交
    • G
      [PATCH] knfsd: Prepare knfsd for support of rsize/wsize of up to 1MB, over TCP · 7adae489
      Greg Banks 提交于
      The limit over UDP remains at 32K.  Also, make some of the apparently
      arbitrary sizing constants clearer.
      
      The biggest change here involves replacing NFSSVC_MAXBLKSIZE by a function of
      the rqstp.  This allows it to be different for different protocols (udp/tcp)
      and also allows it to depend on the servers declared sv_bufsiz.
      
      Note that we don't actually increase sv_bufsz for nfs yet.  That comes next.
      Signed-off-by: NGreg Banks <gnb@melbourne.sgi.com>
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7adae489
    • N
      [PATCH] knfsd: Avoid excess stack usage in svc_tcp_recvfrom · 3cc03b16
      NeilBrown 提交于
      ..  by allocating the array of 'kvec' in 'struct svc_rqst'.
      
      As we plan to increase RPCSVC_MAXPAGES from 8 upto 256, we can no longer
      allocate an array of this size on the stack.  So we allocate it in 'struct
      svc_rqst'.
      
      However svc_rqst contains (indirectly) an array of the same type and size
      (actually several, but they are in a union).  So rather than waste space, we
      move those arrays out of the separately allocated union and into svc_rqst to
      share with the kvec moved out of svc_tcp_recvfrom (various arrays are used at
      different times, so there is no conflict).
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3cc03b16
    • N
      [PATCH] knfsd: Replace two page lists in struct svc_rqst with one · 44524359
      NeilBrown 提交于
      We are planning to increase RPCSVC_MAXPAGES from about 8 to about 256.  This
      means we need to be a bit careful about arrays of size RPCSVC_MAXPAGES.
      
      struct svc_rqst contains two such arrays.  However the there are never more
      that RPCSVC_MAXPAGES pages in the two arrays together, so only one array is
      needed.
      
      The two arrays are for the pages holding the request, and the pages holding
      the reply.  Instead of two arrays, we can simply keep an index into where the
      first reply page is.
      
      This patch also removes a number of small inline functions that probably
      server to obscure what is going on rather than clarify it, and opencode the
      needed functionality.
      
      Also remove the 'rq_restailpage' variable as it is *always* 0.  i.e.  if the
      response 'xdr' structure has a non-empty tail it is always in the same pages
      as the head.
      
       check counters are initilised and incr properly
       check for consistant usage of ++ etc
       maybe extra some inlines for common approach
       general review
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Cc: Magnus Maatta <novell@kiruna.se>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      44524359
  27. 07 1月, 2006 1 次提交
  28. 07 11月, 2005 1 次提交
  29. 23 6月, 2005 1 次提交
  30. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4