An error occurred fetching the project authors.
  1. 25 Jan, 2005 2 commits
  2. 04 Jan, 2005 1 commit
    • Jay Lan's avatar
      [PATCH] enhanced I/O accounting data patch · 9ca7d6f6
      Jay Lan authored
      This patch is to offer common accounting data collection method at I/O for
      various accounting packages including BSD accounting, ELSA, CSA and any
      other acct packages that use a common layer of data collection.
      
      Patch is made to fs/read_write.c to collect per process data on character
      read/written in bytes and number of read/write syscalls made.
      
      New struct fields are added to task_struct to store the data.
      
      These data are collected on per process basis.
      Signed-off-by: default avatarJay Lan <jlan@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9ca7d6f6
  3. 28 Oct, 2004 1 commit
  4. 18 Oct, 2004 1 commit
  5. 09 Aug, 2004 1 commit
  6. 07 Aug, 2004 3 commits
  7. 11 Jul, 2004 1 commit
  8. 22 May, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] Sanitise handling of unneeded syscall stubs · 581ae915
      Andrew Morton authored
      From: David Mosberger <davidm@napali.hpl.hp.com>
      
      Below is a patch that tries to sanitize the dropping of unneeded system-call
      stubs in generic code.  In some instances, it would be possible to move the
      optional system-call stubs into a library routine which would avoid the need
      for #ifdefs, but in many cases, doing so would require making several
      functions global (and possibly exporting additional data-structures in
      header-files).  Furthermore, it would inhibit (automatic) inlining in the
      cases in the cases where the stubs are needed.  For these reasons, the patch
      keeps the #ifdef-approach.
      
      This has been tested on ia64 and there were no objections from the
      arch-maintainers (and one positive response).  The patch should be safe but
      arch-maintainers may want to take a second look to see if some __ARCH_WANT_foo
      macros should be removed for their architecture (I'm quite sure that's the
      case, but I wanted to play it safe and only preserved the status-quo in that
      regard).
      581ae915
  9. 18 Apr, 2004 1 commit
  10. 12 Apr, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] readv/writev range checking fix · fb14ef35
      Andrew Morton authored
      do-readv_writev() is trying to fail if
      
      a) any of the segments have a length < 0 or
      
      b) the sum of the segments wraps negative.
      
      But it gets b) wrong because local variable tot_len is unsigned.
      
      Fix that up.
      fb14ef35
  11. 13 Mar, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] further __KERNEL_SYSCALLS__ removal · d1dbcdee
      Andrew Morton authored
      From: Arnd Bergmann <arnd@arndb.de>
      
      Dave Jones already removed some of the useless __KERNEL_SYSCALLS__ defines
      in various files, this gets rid of almost all the others.  Replacing
      execve() is nontrivial, so I left those in for now.
      
      For all the other system calls that are currently used from inside the
      kernel, calling the sys_* function directly should always have an identical
      effect.
      d1dbcdee
  12. 20 Jan, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] sendfile calls lock_verify_area with wrong parameters · cd118432
      Andrew Morton authored
      From: Manfred Spraul <manfred@colorfullife.com>
      
      sendfile supports reading from a given start offset for in_file, like
      pread.  But for the locks_verify_area call, in_file->f_pos is always used,
      even if a start offset is used.  Result: wrong area is checked for
      mandatory locks.
      cd118432
  13. 19 Jan, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] bdev: switch to f_mapping · 32d66678
      Andrew Morton authored
      From: viro@parcelfarce.linux.theplanet.co.uk <viro@parcelfarce.linux.theplanet.co.uk>
      
      A lot of places used to use ->f_dentry->d_inode->i_mapping all over the
      place.  Replaced with use of ->f_mapping.  For now - just the places where we
      literally could do search-and-replace.
      32d66678
  14. 07 Oct, 2003 1 commit
  15. 10 Jul, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] i_size atomic access · eafe5916
      Andrew Morton authored
      From: Daniel McNeil <daniel@osdl.org>
      
      This adds i_seqcount to the inode structure and then uses i_size_read() and
      i_size_write() to provide atomic access to i_size.  This is a port of
      Andrea Arcangeli's i_size atomic access patch from 2.4.  This only uses the
      generic reader/writer consistent mechanism.
      
      Before:
      mnm:/usr/src/25> size vmlinux
         text    data     bss     dec     hex filename
      2229582 1027683  162436 3419701  342e35 vmlinux
      
      After:
      mnm:/usr/src/25> size vmlinux
         text    data     bss     dec     hex filename
      2225642 1027655  162436 3415733  341eb5 vmlinux
      
      3.9k more text, a lot of it fastpath :(
      
      It's a very minor bug, and the fix has a fairly non-minor cost.  The most
      compelling reason for fixing this is that writepage() checks i_size.  If it
      sees a transient value it may decide that page is outside i_size and will
      refuse to write it.  Lost user data.
      eafe5916
  16. 07 May, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] reduced overheads in fget/fput · 6a414e64
      Andrew Morton authored
      From: Dipankar Sarma <dipankar@in.ibm.com>
      
      
      fget() shows up on profiles, especially on SMP.  Dipankar's patch
      special-cases the situation wherein there are no sharers of current->files.
      
      In this situation we know that no other process can close this file, so it
      is not necessary to increment the file's refcount.
      
      It's ugly as sin, but makes a substantial difference.
      
      The test is
      
      	dd if=/dev/zero of=foo bs=1 count=1M
      
      On 4CPU P3 xeon with 1MB L2 cache and 512MB ram:
      
      	kernel           sys time     std-dev
      	------------     --------     -------
      
      	UP - vanilla     2.104        0.028
      	UP - file        1.867        0.019
      
      	SMP - vanilla    2.976        0.023
      	SMP - file       2.719        0.026
      6a414e64
  17. 16 Apr, 2003 1 commit
  18. 09 Apr, 2003 1 commit
  19. 06 Feb, 2003 2 commits
    • Andrew Morton's avatar
      [PATCH] revert extra sendfile security hook patch · 1dbb976e
      Andrew Morton authored
      hm.  It seems that I sent this patch twice.
      
      After resyncing with your tree I go through and try to reapply all the sent
      patches, throwing out the ones which get a lot of rejects.  Just to make sure
      that everything got through OK.
      
      But it appears that that particular patch happily applied on top of itself,
      so I assumed it was not applied...
      1dbb976e
    • Andrew Morton's avatar
      [PATCH] Restore LSM hook calls to sendfile · 0b316620
      Andrew Morton authored
      Patch from "Stephen D. Smalley" <sds@epoch.ncsc.mil>
      
      This patch restores the LSM hook calls in sendfile to 2.5.59.  The hook was
      previously added as of 2.5.29 but the hook calls in sendfile were
      subsequently lost as a result of the sendfile rewrite as of 2.5.30.
      0b316620
  20. 04 Feb, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] Restore LSM hook calls to sendfile · 776ad141
      Andrew Morton authored
      Patch from "Stephen D. Smalley" <sds@epoch.ncsc.mil>
      
      This patch restores the LSM hook calls in sendfile to 2.5.59.  The hook was
      previously added as of 2.5.29 but the hook calls in sendfile were
      subsequently lost as a result of the sendfile rewrite as of 2.5.30.
      776ad141
  21. 15 Dec, 2002 1 commit
  22. 01 Dec, 2002 1 commit
    • Stephen Rothwell's avatar
      [PATCH] dnotify fix for readv/writev · 114d2a8e
      Stephen Rothwell authored
      From Pengcheng Zou <pczou@redflag-linux.com>:
      >
      > Orignally DN_MODIFY is issued on readv while DN_ACCESS is issued on writev,
      > which is obviously wrong. This patch fixes such problem.
      
      This is the equivalent patch for 2.5.50+.
      114d2a8e
  23. 27 Nov, 2002 1 commit
  24. 09 Nov, 2002 1 commit
    • Hirokazu Takahashi's avatar
      [PATCH] enhance ->sendfile(), allowing kNFSd to use it · 55182280
      Hirokazu Takahashi authored
      I enhanced the sendfile method so that we could pass a proper actor to
      it (which exposes the full power of the internal implementation).
      
      Now knfsd calls the sendfile vector rather than depending on a
      readpage() that hasn't been set up fully.
      55182280
  25. 07 Nov, 2002 1 commit
    • Christoph Hellwig's avatar
      [PATCH] read(v)/write(v) fixes · dae01d33
      Christoph Hellwig authored
      Clean up vfs_readv/writev() interface and avoid code duplication.
      
      Make kNFSd use the cleaned-up interfaces, and disable the code that
      accesses the low-level readpage() function of the exported filesystem
      (not allowed - many filesystems need extra setup, which is why we have
      a separate ->sendpage() routine for that).
      dae01d33
  26. 05 Nov, 2002 1 commit
    • Andrew Morton's avatar
      [PATCH] `event' removal: core kernel · 4ccf7a32
      Andrew Morton authored
      Patch from Manfred Spraul
      
      f_version and i_version are used by filesystems to check if it can
      reuse the f_pos position across readdir calls without validation.
      
      Right now f_version and i_version are modified by
          f_version = ++event;
          i_version = ++event;
          if (f_version != i_version) goto revalidate
      and event is a global, exported variable.
      
      But that's not needed,
          f_version  = 0;
          i_version++;
          if (f_version != i_version) goto revalidate
      works too, without the ugly 'event' variable.
      
      I got an ok from viro, and I had notified the fs maintainers, no
      complaints either
      
      - block_dev.c, block_llseek updates f_version to '++event'.
         grep showed that no device driver uses f_version, this is dead
         code copied from the default llseek implementation.
      
      - the llseek implementations and get_empty_flip set f_version
         to '++event'
         This is not dead code, but
                  filp->f_version = 0
         achieves the same effect:
         f_version is used by the readdir() implementation of several
         filesystems to skip the revalidation of f_pos at the beginning
         of a readdir call: If llseek was not called and the filesystem
         did not change since the last readdir call, then the value in
         f_pos can be trusted.
         The implementation (for example in ext2) is
           inode->i_version = ++event;
         in all operations that change a directory
         At the beginning of file_operation->readdir():
           if(inode->i_version != flip->f_version)
                      revalidate();
           filp->f_version = inode->i_version;
         There are other users of f_version, but none of them use the
         default llseek implementation (e.g. fs/pipe.c)
      4ccf7a32
  27. 30 Oct, 2002 1 commit
    • Neil Brown's avatar
      [PATCH] kNFSd: Convert nfsd to use a list of pages instead of one big buffer · a0e7d495
      Neil Brown authored
      This means:
        1/ We don't need an order-4 allocation for each nfsd that starts
        2/ We don't need an order-4 allocation in skb_linearize when
           we receive a 32K write request
        3/ It will be easier to incorporate the zero-copy read changes
      
      The pages are handed around using an xdr_buf (instead of svc_buf)
      much like the NFS client so future crypto code can use the same
      data structure for both client and server.
      
      The code assumes that most requests and replies fit in a single page.
      The exceptions are assumed to have some largish 'data' bit, and the
      rest must fit in a single page.
      The 'data' bits are file data, readdir data, and symlinks.
      There must be only one 'data' bit per request.
      This is all fine for nfs/nlm.
      
      This isn't complete:
        1/ NFSv4 hasn't been converted yet (it won't compile)
        2/ NFSv3 allows symlinks upto 4096, but the code will only support
           upto about 3800 at the moment
        3/ readdir responses are limited to about 3800.
      
      but I thought that patch was big enough, and the rest can come
      later.
      
      
      This patch introduces vfs_readv and vfs_writev as parallels to
      vfs_read and vfs_write.  This means there is a fair bit of
      duplication in read_write.c that should probably be tidied up...
      a0e7d495
  28. 17 Oct, 2002 2 commits
  29. 10 Oct, 2002 2 commits
  30. 08 Oct, 2002 1 commit
  31. 24 Sep, 2002 1 commit
  32. 17 Sep, 2002 1 commit
  33. 13 Sep, 2002 1 commit
    • Andrew Morton's avatar
      [PATCH] readv/writev speedup · a83638a4
      Andrew Morton authored
      This is Janet Morgan's patch which converts the readv/writev code
      to submit all segments for IO before waiting on them, rather than
      submitting each segment separately.
      
      This is a critical performance fix for O_DIRECT reads and writes.
      Prior to this change, O_DIRECT vectored IO was forced to wait for
      completion against each segment of the iovec rather than submitting all
      segments and waiting on the lot.  ie: for ten segments, this code will
      be ten times faster.
      
      There will also be moderate improvements for buffered IO - smaller code
      paths, plus writev() only takes i_sem once.
      
      The patch ended up quite large unfortunately - turned out that the only
      sane way to implement this without duplicating significant amounts of
      code (the generic_file_write() bounds checking, all the O_DIRECT
      handling, etc) was to redo generic_file_read() and generic_file_write()
      to take an iovec/nr_segs pair rather than `buf, count'.
      
      New exported functions generic_file_readv() and generic_file_writev()
      have been added:
      
      ssize_t generic_file_readv(struct file *filp, const struct iovec *iov,
                                unsigned long nr_segs, loff_t *ppos);
      ssize_t generic_file_writev(struct file *file, const struct iovec *iov,
                                unsigned long nr_segs, loff_t * ppos);
      
      If a driver does not use these in their file_operations then they will
      continue to use the old readv/writev code, which sits in a loop calling
      calls fops->read() or fops->write().
      
      ext2, ext3, JFS and the blockdev driver are currently using this
      capability.
      
      Some coding cleanups were made in fs/read_write.c.  Mainly:
      
      - pass "READ" or "WRITE" around to indicate the diretion of the
        operation, rather than the (confusing, inverted)
        VERIFY_READ/VERIFY_WRITE.
      
      - Use the identifier `nr_segs' everywhere to indicate the iovec
        length rather than `count', which is often used to indicate the
        number of bytes in the syscall.  It was confusing the heck out of me.
      
      - Some cleanups to the raw driver.
      
      - Some additional generality in fs/direct_io.c: the core `struct dio'
        used to be a "populate-and-go" thing.  Janet has broken that up so
        you can initialise a struct dio once, then loop around feeding it
        more file segments, then wait on completion against everything.
      
      - In a couple of places we needed to handle the situation where we
        knew, a-priori, that the user was going to get a short read or write.
        File size limit exceeded, read past i_size, etc.  We handled that by
        shortening the iovec in-place with iov_shorten().  Which is not
        particularly pretty, but neither were the alternatives.
      a83638a4
  34. 29 Jul, 2002 1 commit