1. 23 Jun, 2006 2 commits
    • David Howells's avatar
      [PATCH] VFS: Permit filesystem to perform statfs with a known root dentry · 726c3342
      David Howells authored
      
      
      Give the statfs superblock operation a dentry pointer rather than a superblock
      pointer.
      
      This complements the get_sb() patch.  That reduced the significance of
      sb->s_root, allowing NFS to place a fake root there.  However, NFS does
      require a dentry to use as a target for the statfs operation.  This permits
      the root in the vfsmount to be used instead.
      
      linux/mount.h has been added where necessary to make allyesconfig build
      successfully.
      
      Interest has also been expressed for use with the FUSE and XFS filesystems.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Cc: Nathan Scott <nathans@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      726c3342
    • David Howells's avatar
      [PATCH] VFS: Permit filesystem to override root dentry on mount · 454e2398
      David Howells authored
      
      
      Extend the get_sb() filesystem operation to take an extra argument that
      permits the VFS to pass in the target vfsmount that defines the mountpoint.
      
      The filesystem is then required to manually set the superblock and root dentry
      pointers.  For most filesystems, this should be done with simple_set_mnt()
      which will set the superblock pointer and then set the root dentry to the
      superblock's s_root (as per the old default behaviour).
      
      The get_sb() op now returns an integer as there's now no need to return the
      superblock pointer.
      
      This patch permits a superblock to be implicitly shared amongst several mount
      points, such as can be done with NFS to avoid potential inode aliasing.  In
      such a case, simple_set_mnt() would not be called, and instead the mnt_root
      and mnt_sb would be set directly.
      
      The patch also makes the following changes:
      
       (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount
           pointer argument and return an integer, so most filesystems have to change
           very little.
      
       (*) If one of the convenience function is not used, then get_sb() should
           normally call simple_set_mnt() to instantiate the vfsmount. This will
           always return 0, and so can be tail-called from get_sb().
      
       (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the
           dcache upon superblock destruction rather than shrink_dcache_anon().
      
           This is required because the superblock may now have multiple trees that
           aren't actually bound to s_root, but that still need to be cleaned up. The
           currently called functions assume that the whole tree is rooted at s_root,
           and that anonymous dentries are not the roots of trees which results in
           dentries being left unculled.
      
           However, with the way NFS superblock sharing are currently set to be
           implemented, these assumptions are violated: the root of the filesystem is
           simply a dummy dentry and inode (the real inode for '/' may well be
           inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries
           with child trees.
      
           [*] Anonymous until discovered from another tree.
      
       (*) The documentation has been adjusted, including the additional bit of
           changing ext2_* into foo_* in the documentation.
      
      [akpm@osdl.org: convert ipath_fs, do other stuff]
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Cc: Nathan Scott <nathans@sgi.com>
      Cc: Roland Dreier <rolandd@cisco.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      454e2398
  2. 18 Jun, 2006 2 commits
  3. 17 Jun, 2006 1 commit
  4. 09 Jun, 2006 1 commit
  5. 02 Jun, 2006 1 commit
    • David Woodhouse's avatar
      [JFFS2] Remove stray __exit from jffs2_compressors_exit() · 3bcc86f5
      David Woodhouse authored
      
      
      It's used from the initfunc in case of failure too. We could actually do
      with an '__initexit' for this kind of thing -- when built in to the
      kernel, it could do with being dropped with the init text. We _could_
      actually just use __init for it, but that would break if/when we start
      dropping init text from modules. So let's just leave it as it was for now,
      and mutter a little more about random 'janitorial' fixes from people who
      aren't paying attention to what they're doing.
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      3bcc86f5
  6. 30 May, 2006 2 commits
  7. 29 May, 2006 4 commits
    • Thomas Gleixner's avatar
      [MTD] NAND Signal that a bitflip was corrected by ECC · 9a1fcdfd
      Thomas Gleixner authored
      
      
      Return -EUCLEAN on read when a bitflip was detected and corrected, so the
      clients can react and eventually copy the affected block to a spare one.
      Make all in kernel users aware of the change.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      9a1fcdfd
    • Thomas Gleixner's avatar
      [MTD] Rework the out of band handling completely · 8593fbc6
      Thomas Gleixner authored
      
      
      Hopefully the last iteration on this!
      
      The handling of out of band data on NAND was accompanied by tons of fruitless
      discussions and halfarsed patches to make it work for a particular
      problem. Sufficiently annoyed by I all those "I know it better" mails and the
      resonable amount of discarded "it solves my problem" patches, I finally decided
      to go for the big rework. After removing the _ecc variants of mtd read/write
      functions the solution to satisfy the various requirements was to refactor the
      read/write _oob functions in mtd.
      
      The major change is that read/write_oob now takes a pointer to an operation
      descriptor structure "struct mtd_oob_ops".instead of having a function with at
      least seven arguments.
      
      read/write_oob which should probably renamed to a more descriptive name, can do
      the following tasks:
      
      - read/write out of band data
      - read/write data content and out of band data
      - read/write raw data content and out of band data (ecc disabled)
      
      struct mtd_oob_ops has a mode field, which determines the oob handling mode.
      
      Aside of the MTD_OOB_RAW mode, which is intended to be especially for
      diagnostic purposes and some internal functions e.g. bad block table creation,
      the other two modes are for mtd clients:
      
      MTD_OOB_PLACE puts/gets the given oob data exactly to/from the place which is
      described by the ooboffs and ooblen fields of the mtd_oob_ops strcuture. It's
      up to the caller to make sure that the byte positions are not used by the ECC
      placement algorithms.
      
      MTD_OOB_AUTO puts/gets the given oob data automaticaly to/from the places in
      the out of band area which are described by the oobfree tuples in the ecclayout
      data structre which is associated to the devicee.
      
      The decision whether data plus oob or oob only handling is done depends on the
      setting of the datbuf member of the data structure. When datbuf == NULL then
      the internal read/write_oob functions are selected, otherwise the read/write
      data routines are invoked.
      
      Tested on a few platforms with all variants. Please be aware of possible
      regressions for your particular device / application scenario
      
      Disclaimer: Any whining will be ignored from those who just contributed "hot
      air blurb" and never sat down to tackle the underlying problem of the mess in
      the NAND driver grown over time and the big chunk of work to fix up the
      existing users. The problem was not the holiness of the existing MTD
      interfaces. The problems was the lack of time to go for the big overhaul. It's
      easy to add more mess to the existing one, but it takes alot of effort to go
      for a real solution.
      
      Improvements and bugfixes are welcome!
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      8593fbc6
    • Thomas Gleixner's avatar
      [MTD] NAND Replace oobinfo by ecclayout · 5bd34c09
      Thomas Gleixner authored
      
      
      The nand_oobinfo structure is not fitting the newer error correction
      demands anymore. Replace it by struct nand_ecclayout and fixup the users
      all over the place. Keep the nand_oobinfo based ioctl for user space
      compability reasons.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      5bd34c09
    • Thomas Gleixner's avatar
      [MTD] NAND Consolidate oobinfo handling · ff268fb8
      Thomas Gleixner authored
      
      
      The info structure for out of band data was copied into
      the mtd structure. Make it a pointer and remove the ability
      to set it from userspace. The position of ecc bytes is
      defined by the hardware and should not be changed by software.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      ff268fb8
  8. 28 May, 2006 2 commits
  9. 27 May, 2006 1 commit
  10. 26 May, 2006 1 commit
  11. 25 May, 2006 6 commits
  12. 24 May, 2006 3 commits
  13. 23 May, 2006 2 commits
  14. 22 May, 2006 10 commits
  15. 21 May, 2006 2 commits