1. 24 3月, 2011 1 次提交
  2. 21 3月, 2011 5 次提交
    • S
      introduce sys_syncfs to sync a single file system · b7ed78f5
      Sage Weil 提交于
      It is frequently useful to sync a single file system, instead of all
      mounted file systems via sync(2):
      
       - On machines with many mounts, it is not at all uncommon for some of
         them to hang (e.g. unresponsive NFS server).  sync(2) will get stuck on
         those and may never get to the one you do care about (e.g., /).
       - Some applications write lots of data to the file system and then
         want to make sure it is flushed to disk.  Calling fsync(2) on each
         file introduces unnecessary ordering constraints that result in a large
         amount of sub-optimal writeback/flush/commit behavior by the file
         system.
      
      There are currently two ways (that I know of) to sync a single super_block:
      
       - BLKFLSBUF ioctl on the block device: That also invalidates the bdev
         mapping, which isn't usually desirable, and doesn't work for non-block
         file systems.
       - 'mount -o remount,rw' will call sync_filesystem as an artifact of the
         current implemention.  Relying on this little-known side effect for
         something like data safety sounds foolish.
      
      Both of these approaches require root privileges, which some applications
      do not have (nor should they need?) given that sync(2) is an unprivileged
      operation.
      
      This patch introduces a new system call syncfs(2) that takes an fd and
      syncs only the file system it references.  Maybe someday we can
      
       $ sync /some/path
      
      and not get
      
       sync: ignoring all arguments
      
      The syscall is motivated by comments by Al and Christoph at the last LSF.
      syncfs(2) seems like an appropriate name given statfs(2).
      
      A similar ioctl was also proposed a while back, see
      	http://marc.info/?l=linux-fsdevel&m=127970513829285&w=2Signed-off-by: NSage Weil <sage@newdream.net>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      b7ed78f5
    • M
      powerpc/ptrace: Remove BUG_ON when full register set not available · a71f5d5d
      Mike Wolf 提交于
      In some cases during a threaded core dump not all the threads will have
      a full register set. This happens when the signal causing the core dump
      races with a thread exiting.  The race happens when the exiting thread
      has entered the kernel for the last time before the signal arrives, but
      doesn't get far enough through the exit code to avoid being included
      in the core dump.
      
      So we get a thread included in the core dump which is never going to go
      out to userspace again and only has a partial register set recorded
      
      Normally we would catch each thread as it is about to go into userspace
      and capture the full register set then.
      
      However, this exiting thread is never going to go out to userspace
      again, so we have no way to capture its full register set.  It doesn't
      really matter, though, as this is a thread which is effectively
      already dead.
      
      So instead of hitting a BUG() in this case (a really bad choice of
      action in the first place), we use a poison value for the register
      values.
      
      [BenH]: Some cosmetic/stylistic changes and fix build on ppc32
      Signed-off-by: NMike Wolf <mjw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      a71f5d5d
    • M
      powerpc: Factoring mpic cpu id fetching into a function · d6a2639b
      Meador Inge 提交于
      The following code snippet:
      
      	unsigned int cpu = 0;
      	if (mpic->flags & MPIC_PRIMARY)
      		cpu = hard_smp_processor_id();
      
      is seen in several places in the 'mpic.c' code.  This changeset factors
      that pattern out into a helper function called 'mpic_processor_id'.
      Signed-off-by: NMeador Inge <meador_inge@mentor.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      d6a2639b
    • M
      powerpc: Make MPIC honor the "pic-no-reset" device tree property · dfec2202
      Meador Inge 提交于
      This property, defined in the Open PIC binding, tells the kernel not to use
      the reset bit in the global configuration register.  Additionally, its
      presence mandates that only sources which are actually used (i.e. appear in
      the device tree) should have their VECPRI bits initialized.
      
      Although, "pic-no-reset" can be used for the same use cases that
      "protected-sources" is covering, the "protected-sources" implementation was
      left completely intact.  This is a more pragmatic approach as there are
      already several existing systems which use protected sources.  If
      "pic-no-reset" *and* "protected-sources" are both used, however, then
      "pic-no-reset" takes precedence in terms of the init behavior and the
      sanity checks done by protected sources will still take place.
      Signed-off-by: NMeador Inge <meador_inge@mentor.com>
      Cc: Hollis Blanchard <hollis_blanchard@mentor.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      dfec2202
    • B
      powerpc/pci: Fix crash in PCI code on ppc64 when matching device nodes · 90407c99
      Benjamin Herrenschmidt 提交于
      Commit b5d937de has a bug which causes
      basically a NULL dereference in the PCI code during boot on ppc64
      machines.
      
      fetch_dev_dn() is called when dev->dev.of_node is NULL, so using that
      as the starting point for the search makes no sense. It should instead
      start from the device node of the PHB.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      90407c99
  3. 20 3月, 2011 1 次提交
  4. 19 3月, 2011 18 次提交
  5. 18 3月, 2011 15 次提交