1. 09 1月, 2008 1 次提交
  2. 21 11月, 2007 1 次提交
    • J
      [CIFS] Fix potential data corruption when writing out cached dirty pages · cea21805
      Jeff Layton 提交于
      Fix RedHat bug 329431
      
      The idea here is separate "conscious" from "unconscious" flushes.
      Conscious flushes are those due to a fsync() or close(). Unconscious
      ones are flushes that occur as a side effect of some other operation or
      due to memory pressure.
      
      Currently, when an error occurs during an unconscious flush (ENOSPC or
      EIO), we toss out the page and don't preserve that error to report to
      the user when a conscious flush occurs. If after the unconscious flush,
      there are no more dirty pages for the inode, the conscious flush will
      simply return success even though there were previous errors when writing
      out pages. This can lead to data corruption.
      
      The easiest way to reproduce this is to mount up a CIFS share that's
      very close to being full or where the user is very close to quota. mv
      a file to the share that's slightly larger than the quota allows. The
      writes will all succeed (since they go to pagecache). The mv will do a
      setattr to set the new file's attributes. This calls
      filemap_write_and_wait,
      which will return an error since all of the pages can't be written out.
      Then later, when the flush and release ops occur, there are no more
      dirty pages in pagecache for the file and those operations return 0. mv
      then assumes that the file was written out correctly and deletes the
      original.
      
      CIFS already has a write_behind_rc variable where it stores the results
      from earlier flushes, but that value is only reported in cifs_close.
      Since the VFS ignores the return value from the release operation, this
      isn't helpful. We should be reporting this error during the flush
      operation.
      
      This patch does the following:
      
      1) changes cifs_fsync to use filemap_write_and_wait and cifs_flush and also
      sync to check its return code. If it returns successful, they then check
      the value of write_behind_rc to see if an earlier flush had reported any
      errors. If so, they return that error and clear write_behind_rc.
      
      2) sets write_behind_rc in a few other places where pages are written
      out as a side effect of other operations and the code waits on them.
      
      3) changes cifs_setattr to only call filemap_write_and_wait for
      ATTR_SIZE changes.
      
      4) makes cifs_writepages accurately distinguish between EIO and ENOSPC
      errors when writing out pages.
      
      Some simple testing indicates that the patch works as expected and that
      it fixes the reproduceable known problem.
      Acked-by: NDave Kleikamp <shaggy@austin.rr.com>
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      cea21805
  3. 18 8月, 2007 1 次提交
  4. 26 7月, 2007 1 次提交
  5. 12 7月, 2007 1 次提交
  6. 25 6月, 2007 1 次提交
  7. 06 5月, 2007 1 次提交
  8. 05 5月, 2007 1 次提交
    • J
      [CIFS] Make sec=none force an anonymous mount · 8426c39c
      Jeff Layton 提交于
      We had a customer report that attempting to make CIFS mount with a null
      username (i.e. doing an anonymous mount) doesn't work. Looking through the
      code, it looks like CIFS expects a NULL username from userspace in order
      to trigger an anonymous mount. The mount.cifs code doesn't seem to ever
      pass a null username to the kernel, however.
      
      It looks also like the kernel can take a sec=none option, but it only seems
      to look at it if the username is already NULL. This seems redundant and
      effectively makes sec=none useless.
      
      The following patch makes sec=none force an anonymous mount.
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      8426c39c
  9. 01 5月, 2007 1 次提交
    • S
      [CIFS] UID/GID override on CIFS mounts to Samba · 4523cc30
      Steve French 提交于
      When CIFS Unix Extensions are negotiated we get the Unix uid and gid
      owners of the file from the server (on the Unix Query Path Info
      levels), but if the server's uids don't match the client uid's users
      were having to disable the Unix Extensions (which turned off features
      they still wanted).   The changeset patch allows users to override uid
      and/or gid for file/directory owner with a default uid and/or gid
      specified at mount (as is often done when mounting from Linux cifs
      client to Windows server).  This changeset also displays the uid
      and gid used by default in /proc/mounts (if applicable).
      
      Also cleans up code by adding some of the missing spaces after
      "if" keywords per-kernel style guidelines (as suggested by Randy Dunlap
      when he reviewed the patch).
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      4523cc30
  10. 18 2月, 2007 1 次提交
  11. 04 10月, 2006 1 次提交
  12. 17 8月, 2006 1 次提交
  13. 27 6月, 2006 1 次提交
  14. 23 6月, 2006 1 次提交
  15. 04 6月, 2006 1 次提交
  16. 22 4月, 2006 1 次提交
  17. 02 3月, 2006 1 次提交
  18. 02 12月, 2005 1 次提交
  19. 30 11月, 2005 1 次提交
  20. 12 10月, 2005 1 次提交
  21. 11 10月, 2005 2 次提交
  22. 19 8月, 2005 1 次提交
  23. 18 5月, 2005 1 次提交
  24. 06 5月, 2005 1 次提交
  25. 29 4月, 2005 5 次提交
  26. 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