1. 13 Jul, 2005 16 commits
    • Martin Schwidefsky's avatar
      [PATCH] s390: fadvise hint values. · 068e1b94
      Martin Schwidefsky authored
      Add special case for the POSIX_FADV_DONTNEED and POSIX_FADV_NOREUSE hint
      values for s390-64.  The user space values in the s390-64 glibc headers for
      these two defines have always been 6 and 7 instead of 4 and 5.  All 64 bit
      applications therefore use the "wrong" values.  To get these applications
      working without recompiling the kernel needs to accept the "wrong" values.
      Since the values for s390-31 are 4 and 5 the compat wrapper for fadvise64
      and fadvise64_64 need to rewrite the values for 31 bit system calls.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      068e1b94
    • Guillaume Autran's avatar
      [PATCH] ppc32: fix destroy_context() race condition · ddca3b80
      Guillaume Autran authored
      Fix for a race condition when a task gets preempted by another task while
      executing the destroy_context(...) in a FEW_CONTEXTS environment.
      mm->context == NO_CONTEXT but the context_map may indicate all contexts are
      in use.
      
      The solution to this problem is to disable kernel preemption while
      destroying a MMU context.
      Signed-off-by: default avatarGuillaume Autran <gautran@mrv.com>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ddca3b80
    • Anton Altaparmakov's avatar
      [PATCH] Fix soft lockup due to NTFS: VFS part and explanation · 88bd5121
      Anton Altaparmakov authored
      Something has changed in the core kernel such that we now get concurrent
      inode write outs, one e.g via pdflush and one via sys_sync or whatever.
      This causes a nasty deadlock in ntfs.  The only clean solution
      unfortunately requires a minor vfs api extension.
      
      First the deadlock analysis:
      
      Prerequisive knowledge: NTFS has a file $MFT (inode 0) loaded at mount
      time.  The NTFS driver uses the page cache for storing the file contents as
      usual.  More interestingly this file contains the table of on-disk inodes
      as a sequence of MFT_RECORDs.  Thus NTFS driver accesses the on-disk inodes
      by accessing the MFT_RECORDs in the page cache pages of the loaded inode
      $MFT.
      
      The situation: VFS inode X on a mounted ntfs volume is dirty.  For same
      inode X, the ntfs_inode is dirty and thus corresponding on-disk inode,
      which is as explained above in a dirty PAGE_CACHE_PAGE belonging to the
      table of inodes ($MFT, inode 0).
      
      What happens:
      
      Process 1: sys_sync()/umount()/whatever...  calls __sync_single_inode() for
      $MFT -> do_writepages() -> write_page for the dirty page containing the
      on-disk inode X, the page is now locked -> ntfs_write_mst_block() which
      clears PageUptodate() on the page to prevent anyone else getting hold of it
      whilst it does the write out (this is necessary as the on-disk inode needs
      "fixups" applied before the write to disk which are removed again after the
      write and PageUptodate is then set again).  It then analyses the page
      looking for dirty on-disk inodes and when it finds one it calls
      ntfs_may_write_mft_record() to see if it is safe to write this on-disk
      inode.  This then calls ilookup5() to check if the corresponding VFS inode
      is in icache().  This in turn calls ifind() which waits on the inode lock
      via wait_on_inode whilst holding the global inode_lock.
      
      Process 2: pdflush results in a call to __sync_single_inode for the same
      VFS inode X on the ntfs volume.  This locks the inode (I_LOCK) then calls
      write-inode -> ntfs_write_inode -> map_mft_record() -> read_cache_page() of
      the page (in page cache of table of inodes $MFT, inode 0) containing the
      on-disk inode.  This page has PageUptodate() clear because of Process 1
      (see above) so read_cache_page() blocks when tries to take the page lock
      for the page so it can call ntfs_read_page().
      
      Thus Process 1 is holding the page lock on the page containing the on-disk
      inode X and it is waiting on the inode X to be unlocked in ifind() so it
      can write the page out and then unlock the page.
      
      And Process 2 is holding the inode lock on inode X and is waiting for the
      page to be unlocked so it can call ntfs_readpage() or discover that
      Process 1 set PageUptodate() again and use the page.
      
      Thus we have a deadlock due to ifind() waiting on the inode lock.
      
      The only sensible solution: NTFS does not care whether the VFS inode is
      locked or not when it calls ilookup5() (it doesn't use the VFS inode at
      all, it just uses it to find the corresponding ntfs_inode which is of
      course attached to the VFS inode (both are one single struct); and it uses
      the ntfs_inode which is subject to its own locking so I_LOCK is irrelevant)
      hence we want a modified ilookup5_nowait() which is the same as ilookup5()
      but it does not wait on the inode lock.
      
      Without such functionality I would have to keep my own ntfs_inode cache in
      the NTFS driver just so I can find ntfs_inodes independent of their VFS
      inodes which would be slow, memory and cpu cycle wasting, and incredibly
      stupid given the icache already exists in the VFS.
      
      Below is a patch that does the ilookup5_nowait() implementation in
      fs/inode.c and exports it.
      
      ilookup5_nowait.diff:
      
      Introduce ilookup5_nowait() which is basically the same as ilookup5() but
      it does not wait on the inode's lock (i.e. it omits the wait_on_inode()
      done in ifind()).
      
      This is needed to avoid a nasty deadlock in NTFS.
      Signed-off-by: default avatarAnton Altaparmakov <aia21@cantab.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      88bd5121
    • Robert Love's avatar
      [PATCH] inotify: misc cleanup · 9a556e89
      Robert Love authored
      Really simple, basic cleanup.
      Signed-off-by: default avatarRobert Love <rml@novell.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9a556e89
    • Robert Love's avatar
      [PATCH] inotify: event ordering · 5995f16b
      Robert Love authored
      This rearranges the event ordering for "open" to be consistent with the
      ordering of the other events.
      Signed-off-by: default avatarRobert Love <rml@novell.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      5995f16b
    • Robert Love's avatar
      [PATCH] inotify: move sysctl · 0399cb08
      Robert Love authored
      This moves the inotify sysctl knobs to "/proc/sys/fs/inotify" from
      "/proc/sys/fs".  Also some related cleanup.
      Signed-off-by: default avatarRobert Love <rml@novell.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      0399cb08
    • James Bottomley's avatar
      [PATCH] fix voyager subarchitecture EXPORT_SYMBOL breakage caused by i386_ksym reduction · 153f8057
      James Bottomley authored
      This patch:
      
      	[PATCH] Remove i386_ksyms.c, almost
      
      made files like smp.c do their own EXPORT_SYMBOLS.  This means that all
      subarchitectures that override these symbols now have to do the exports
      themselves.  This patch adds the exports for voyager (which is the most
      affected since it has a separate smp harness).  However, someone should
      audit all the other subarchitectures to see if any others got broken.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      153f8057
    • Linus Torvalds's avatar
    • Jeff Mahoney's avatar
      [PATCH] Lindent: ignore .indent.pro · c0ac515e
      Jeff Mahoney authored
       When I recently submitted a Lindent patch, it turned out that my .indent.pro
       options were also applied to the tree. This patch directs indent(1) to ignore
       the .indent.pro directives and only use options specified on the command
       line.
      Signed-off-by: default avatarJeff Mahoney <jeffm@suse.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c0ac515e
    • Linus Torvalds's avatar
      Merge /home/torvalds/linux-2.6-arm · 6cd59f7a
      Linus Torvalds authored
      6cd59f7a
    • Ian Dall's avatar
      JFS: Need to be root to create files with security context · 59192ed9
      Ian Dall authored
      It turns out this is due to some inverted logic in xattr.c
      Signed-off-by: default avatarDave Kleikamp <shaggy@austin.ibm.com>
      59192ed9
    • Dave Kleikamp's avatar
      JFS: Allow security.* xattrs to be set on symlinks · 6211502d
      Dave Kleikamp authored
      All of the different xattr namespaces have different rules.
      user.* and ACL's are not allowed on symlinks, and since these were the
      first xattrs implemented, I assumed there was no need to support xattrs
      on symlinks.  This one-line patch should fix it.
      Signed-off-by: default avatarDave Kleikamp <shaggy@austin.ibm.com>
      6211502d
    • Dave Kleikamp's avatar
      f7f24758
    • Linus Torvalds's avatar
      Linux 2.6.13-rc3 · c32511e2
      Linus Torvalds authored
      Yeah, this time hopefully I'm not confusing the version
      numbers. The last release was -rc2, _this_ is -rc3.
      c32511e2
    • Robert Love's avatar
      [PATCH] inotify · 0eeca283
      Robert Love authored
      inotify is intended to correct the deficiencies of dnotify, particularly
      its inability to scale and its terrible user interface:
      
              * dnotify requires the opening of one fd per each directory
                that you intend to watch. This quickly results in too many
                open files and pins removable media, preventing unmount.
              * dnotify is directory-based. You only learn about changes to
                directories. Sure, a change to a file in a directory affects
                the directory, but you are then forced to keep a cache of
                stat structures.
              * dnotify's interface to user-space is awful.  Signals?
      
      inotify provides a more usable, simple, powerful solution to file change
      notification:
      
              * inotify's interface is a system call that returns a fd, not SIGIO.
      	  You get a single fd, which is select()-able.
              * inotify has an event that says "the filesystem that the item
                you were watching is on was unmounted."
              * inotify can watch directories or files.
      
      Inotify is currently used by Beagle (a desktop search infrastructure),
      Gamin (a FAM replacement), and other projects.
      
      See Documentation/filesystems/inotify.txt.
      Signed-off-by: default avatarRobert Love <rml@novell.com>
      Cc: John McCutchan <ttb@tentacle.dhs.org>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      0eeca283
    • Linus Torvalds's avatar
      reiserfs: run scripts/Lindent on reiserfs code · bd4c625c
      Linus Torvalds authored
      This was a pure indentation change, using:
      
      	scripts/Lindent fs/reiserfs/*.c include/linux/reiserfs_*.h
      
      to make reiserfs match the regular Linux indentation style.  As Jeff
      Mahoney <jeffm@suse.com> writes:
      
       The ReiserFS code is a mix of a number of different coding styles, sometimes
       different even from line-to-line. Since the code has been relatively stable
       for quite some time and there are few outstanding patches to be applied, it
       is time to reformat the code to conform to the Linux style standard outlined
       in Documentation/CodingStyle.
      
       This patch contains the result of running scripts/Lindent against
       fs/reiserfs/*.c and include/linux/reiserfs_*.h. There are places where the
       code can be made to look better, but I'd rather keep those patches separate
       so that there isn't a subtle by-hand hand accident in the middle of a huge
       patch. To be clear: This patch is reformatting *only*.
      
       A number of patches may follow that continue to make the code more consistent
       with the Linux coding style.
      
       Hans wasn't particularly enthusiastic about these patches, but said he
       wouldn't really oppose them either.
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      bd4c625c
  2. 12 Jul, 2005 24 commits