1. 07 Sep, 2005 16 commits
    • Dave Johnson's avatar
      [PATCH] fix cramfs making duplicate entries in inode cache · a97c9bf3
      Dave Johnson authored
      Every time cramfs_lookup() is called to lookup and inode for a dentry,
      get_cramfs_inode() will allocate a new inode without checking to see if that
      inode already exists in the inode cache.
      This is fine the first time, but if the dentry cache entry(ies) associated
      with that inode are aged out, but the inode entry is not aged out (which can
      be quite common if the inode has buffer cache linked to it), cramfs_lookup()
      will be called again and another inode will be allocated and added to the
      inode cache creating a duplicate in the inode cache.
      The big issue here is that the buffers associated with each inode cache entry
      are not shared between the duplicates!
      The older inode entries are now orphaned as no dentry points to it and won't
      be freed until the buffer cache assoicated with them are first freed.  The
      newest entry will have to create all new buffer cache for each part of its
      file as the old buffer cache is now orphaned as well.
      Patch below fixes this by making get_cramfs_inode() use the inode cache before
      blindly creating a new entry every time.  This eliminates the duplicate inodes
      and duplicate buffer cache.
      Cc: Phillip Lougher <phillip@lougher.demon.co.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Eric Dumazet's avatar
      [PATCH] remove file.f_maxcount · 2832e936
      Eric Dumazet authored
      struct file cleanup: f_maxcount has an unique value (INT_MAX).  Just use
      the hard-wired value.
      Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Tejun Heo's avatar
      [PATCH] fs: remove redundant timespec_equal test in update_atime() · 5acd5793
      Tejun Heo authored
      In update_atime(), timespec_equal() test is done twice in succession and
      the second is always false.  This patch removes the second test.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Adrian Bunk's avatar
      [PATCH] jffs/jffs2: remove wrong function prototypes · 5e1efe49
      Adrian Bunk authored
      This patch removes prototypes for the generic_file_open and
      generic_file_llseek functions.
      Besides being superfluous because they are already present in fs.h, they
      were also wrong because the actual functions aren't weak functions.
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Adrian Bunk's avatar
      [PATCH] fs/Kconfig: quota help text updates · 919532a5
      Adrian Bunk authored
      This patch contains the following updates to the help texts:
      - QUOTA: most people will get the quota utilities from their
               distribution, and if not the mini-HOWTO will tell them
      - QFMT_V2: quota utilities 3.01 are no longer recent, they are now
                 and 3.01 is lower than the minimal version documented in
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Acked-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Miklos Szeredi's avatar
      [PATCH] proc: link count fix · 2b579bee
      Miklos Szeredi authored
      This patch fixes bug titled "sunrpc as module and bad proc/sys link count"
      reported by Jiri Slaby.
      The problem was, that only proc_dir_entry->nlink was updated and the
      corresponding inode->i_nlink was not.  The fix is to implement the
      inode->getattr() method, and update i_nlink (if necessary).
      A quick audit of proc code shows that no other attribute changes after
      Signed-off-by: default avatarMiklos Szeredi <miklos@szeredi.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Robert Love's avatar
      [PATCH] fsnotify: hook on removexattr, too · b8006854
      Robert Love authored
      Add fsnotify_xattr() hook to removexattr().
      Signed-off-by: default avatarRobert Love <rml@novell.com>
      Signed-off-by: default avatarJohn McCtuchan <ttb@tentacle.dhs.org>
      Cc: Andreas Gruenbacher <agruen@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Karsten Wiese's avatar
      [PATCH] Speedup FAT filesystem directory reads · f3ef6f63
      Karsten Wiese authored
            OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      This speeds up directory reads for large FAT partitions, if the buffercache
      has to be filled from the drive. Following values were taken from:
              $ time find path_to_freshly_mounted_fat > /dev/null
      on an otherwise idle system.
      FAT with 16KB Clusters on IDE attached drive:   Factor  2
      FAT with 32KB Clusters on USB2 attached drive:  Factor 10 (!)
      Its less than 1/10 slower, if the buffercache is uptodate.
      The patch introduces the new function fat_dir_readahead().
      fat_dir_readahead() calls sb_breadahead() to readahead a whole cluster,
      if the requested sector is the first one in a cluster.
      It is usefull to do this, because on FAT directories occupy whole
      clusters, with the exception of FAT12/FAT16 root dirs.
      Readahead is only done, if the cluster's first sector is not uptodate
      to avoid overhead, when the buffer cache is already uptodate.
      Note that under memory pressure, the maximal byte count wasted
      (read: has to be red from disk twice) is 1 cluster's size.  Thats 64KB.
      fat_dir_readahead() is called from fat__get_entry().
      There is also an unrelated cleanup at one spot:
              if (bh)
      is replaced with:
      brelse() can handle NULL pointer arguments by itself.
      Signed-off-by: default avatarKarsten Wiese <annabellesgarden@yahoo.de>
      Signed-off-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Bruce Allan's avatar
      [PATCH] sunrpc: cache_register can use wrong module reference · f35279d3
      Bruce Allan authored
      When registering an RPC cache, cache_register() always sets the owner as the
      sunrpc module.  However, there are RPC caches owned by other modules.  With
      the incorrect owner setting, the real owning module can be removed potentially
      with an open reference to the cache from userspace.
      For example, if one were to stop the nfs server and unmount the nfsd
      filesystem, the nfsd module could be removed eventhough rpc.idmapd had
      references to the idtoname and nametoid caches (i.e.
      /proc/net/rpc/nfs4.<cachename>/channel is still open).  This resulted in a
      system panic on one of our machines when attempting to restart the nfs
      services after reloading the nfsd module.
      The following patch adds a 'struct module *owner' field in struct
      cache_detail.  The owner is further assigned to the struct proc_dir_entry
      in cache_register() so that the module cannot be unloaded while user-space
      daemons have an open reference on the associated file under /proc.
      Signed-off-by: default avatarBruce Allan <bwa@us.ibm.com>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Cc: Neil Brown <neilb@cse.unsw.edu.au>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Mark Bellon's avatar
      [PATCH] disk quotas fail when /etc/mtab is symlinked to /proc/mounts · 8fc2751b
      Mark Bellon authored
      If /etc/mtab is a regular file all of the mount options (of a file system)
      are written to /etc/mtab by the mount command.  The quota tools look there
      for the quota strings for their operation.  If, however, /etc/mtab is a
      symlink to /proc/mounts (a "good thing" in some environments) the tools
      don't write anything - they assume the kernel will take care of things.
      While the quota options are sent down to the kernel via the mount system
      call and the file system codes handle them properly unfortunately there is
      no code to echo the quota strings into /proc/mounts and the quota tools
      fail in the symlink case.
      The attached patchs modify the EXT[2|3] and JFS codes to add the necessary
      hooks.  The show_options function of each file system in these patches
      currently deal with only those things that seemed related to quotas;
      especially in the EXT3 case more can be done (later?).
      Jan Kara also noted the difficulty in moving these changes above the FS
      codes responding similarly to myself to Andrew's comment about possible
      VFS migration. Issue summary:
       - FS codes have to process the entire string of options anyway.
       - Only FS codes that use quotas must have a show_options function (for
         quotas to work properly) however quotas are only used in a small number
         of FS.
       - Since most of the quota using FS support other options these FS codes
         should have the a show_options function to show those options - and the
         quota echoing becomes virtually negligible.
      Based on feedback I have modified my patches from the original:
         JFS a missing patch has been restored to the posting
         EXT[2|3] and JFS always use the show_options function
             - Each FS has at least one FS specific option displayed
             - QUOTA output is under a CONFIG_QUOTA ifdef
             - a follow-on patch will add a multitude of options for each FS
         EXT[2|3] and JFS "quota" is treated as "usrquota"
         EXT3 journalled data check for journalled quota removed
         EXT[2|3] mount when quota specified but not compiled in
       - no changes from my original patch.  I tested the patch and the codes
         warn but
       - still mount.  With all due respection I believe the comments
         otherwise were a
       - misread of the patch.  Please reread/test and comment.  XFS patch
         removed - the XFS team already made the necessary changes EXT3 mixing
         old and new quotas are handled differently (not purely exclusive)
       - if old and new quotas for the same type are used together the old
         type is silently depricated for compatability (e.g.  usrquota and
       - mixing of old and new quotas is an error (e.g.  usrjquota and
      Signed-off-by: default avatarMark Bellon <mbellon@mvista.com>
      Acked-by: default avatarDave Kleikamp <shaggy@austin.ibm.com>
      Cc: Jan Kara <jack@ucw.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Adrian Bunk's avatar
      [PATCH] remove register_ioctl32_conversion and unregister_ioctl32_conversion · 5dd42c26
      Adrian Bunk authored
      All users have been converted.
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Peter Osterlund's avatar
      [PATCH] kill bio->bi_set · 3676347a
      Peter Osterlund authored
      ->bi_set is totally unnecessary bloat of struct bio.  Just define a proper
      destructor for the bio and it already knows what bio_set it belongs too.
      Fixed the bugs.
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarPeter Osterlund <petero2@telia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Adrian Bunk's avatar
      [PATCH] fs/jbd/: cleanups · 022a4a7b
      Adrian Bunk authored
      This patch contains the following cleanups:
      - make needlessly global functions static
      - journal.c: remove the unused global function __journal_internal_check
                   and move the check to journal_init
      - remove the following write-only global variable:
        - journal.c: current_journal
      - remove the following unneeded EXPORT_SYMBOL:
        - journal.c: journal_recover
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Acked-by: default avatarAndreas Dilger <adilger@clusterfs.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Stephen Rothwell's avatar
      [PATCH] compat: be more consistent about [ug]id_t · 202e5979
      Stephen Rothwell authored
      When I first wrote the compat layer patches, I was somewhat cavalier about
      the definition of compat_uid_t and compat_gid_t (or maybe I just
      misunderstood :-)).  This patch makes the compat types much more consistent
      with the types we are being compatible with and hopefully will fix a few
      bugs along the way.
      	compat type		type in compat arch
      	__compat_[ug]id_t	__kernel_[ug]id_t
      	__compat_[ug]id32_t	__kernel_[ug]id32_t
      	compat_[ug]id_t		[ug]id_t
      The difference is that compat_uid_t is always 32 bits (for the archs we
      care about) but __compat_uid_t may be 16 bits on some.
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • John McCutchan's avatar
      [PATCH] inotify speedup · 820249ba
      John McCutchan authored
      Bypass an inotify-related fastpath spinlock and several function calls on
      systems which have no inotify watches registered.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Tom Zanussi's avatar
      [PATCH] relayfs · e82894f8
      Tom Zanussi authored
      Here's the latest version of relayfs, against linux-2.6.11-mm2.  I'm hoping
      you'll consider putting this version back into your tree - the previous
      rounds of comment seem to have shaken out all the API issues and the number
      of comments on the code itself have also steadily dwindled.
      This patch is essentially the same as the relayfs redux part 5 patch, with
      some minor changes based on reviewer comments.  Thanks again to Pekka
      Enberg for those.  The patch size without documentation is now a little
      smaller at just over 40k.  Here's a detailed list of the changes:
      - removed the attribute_flags in relay open and changed it to a
        boolean specifying either overwrite or no-overwrite mode, and removed
        everything referencing the attribute flags.
      - added a check for NULL names in relayfs_create_entry()
      - got rid of the unnecessary multiple labels in relay_create_buf()
      - some minor simplification of relay_alloc_buf() which got rid of a
        couple params
      - updated the Documentation
      In addition, this version (through code contained in the relay-apps tarball
      linked to below, not as part of the relayfs patch) tries to make it as easy
      as possible to create the cooperating kernel/user pieces of a typical and
      common type of logging application, one where kernel logging is kicked off
      when a user space data collection app starts and stops when the collection
      app exits, with the data being automatically logged to disk in between.  To
      create this type of application, you basically just include a header file
      (relay-app.h, included in the relay-apps tarball) in your kernel module,
      define a couple of callbacks and call an initialization function, and on
      the user side call a single function that sets up and continuously monitors
      the buffers, and writes data to files as it becomes available.  Channels
      are created when the collection app is started and destroyed when it exits,
      not when the kernel module is inserted, so different channel buffer sizes
      can be specified for each separate run via command-line options.  See the
      README in the relay-apps tarball for details.
      Also included in the relay-apps tarball are a couple examples
      demonstrating how you can use this to create quick and dirty kernel
      logging/debugging applications.  They are:
      - tprintk, short for 'tee printk', which temporarily puts a kprobe on
        printk() and writes a duplicate stream of printk output to a relayfs
        channel.  This could be used anywhere there's printk() debugging code
        in the kernel which you'd like to exercise, but would rather not have
        your system logs cluttered with debugging junk.  You'd probably want
        to kill klogd while you do this, otherwise there wouldn't be much
        point (since putting a kprobe on printk() doesn't change the output
        of printk()).  I've used this method to temporarily divert the packet
        logging output of the iptables LOG target from the system logs to
        relayfs files instead, for instance.
      - klog, which just provides a printk-like formatted logging function
        on top of relayfs.  Again, you can use this to keep stuff out of your
        system logs if used in place of printk.
      The example applications can be found here:
      From: Christoph Hellwig <hch@lst.de>
        avoid lookup_hash usage in relayfs
      Signed-off-by: default avatarTom Zanussi <zanussi@us.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
  2. 05 Sep, 2005 4 commits
    • Paolo 'Blaisorblade' Giarrusso's avatar
      [PATCH] uml: fixes performance regression in activate_mm and thus exec() · 1e40cd38
      Paolo 'Blaisorblade' Giarrusso authored
      Normally, activate_mm() is called from exec(), and thus it used to be a
      no-op because we use a completely new "MM context" on the host (for
      instance, a new process), and so we didn't need to flush any "TLB entries"
      (which for us are the set of memory mappings for the host process from the
      virtual "RAM" file).
      Kernel threads, instead, are usually handled in a different way.  So, when
      for AIO we call use_mm(), things used to break and so Benjamin implemented
      activate_mm().  However, that is only needed for AIO, and could slow down
      exec() inside UML, so be smart: detect being called for AIO (via
      PF_BORROWED_MM) and do the full flush only in that situation.
      Comment also the caller so that people won't go breaking UML without
      noticing.  I also rely on the caller's locks for testing current->flags.
      Signed-off-by: default avatarPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      CC: Benjamin LaHaise <bcrl@kvack.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Stephen Smalley's avatar
      [PATCH] Generic VFS fallback for security xattrs · f549d6c1
      Stephen Smalley authored
      This patch modifies the VFS setxattr, getxattr, and listxattr code to fall
      back to the security module for security xattrs if the filesystem does not
      support xattrs natively.  This allows security modules to export the incore
      inode security label information to userspace even if the filesystem does
      not provide xattr storage, and eliminates the need to individually patch
      various pseudo filesystem types to provide such access.  The patch removes
      the existing xattr code from devpts and tmpfs as it is then no longer
      The patch restructures the code flow slightly to reduce duplication between
      the normal path and the fallback path, but this should only have one
      user-visible side effect - a program may get -EACCES rather than
      -EOPNOTSUPP if policy denied access but the filesystem didn't support the
      operation anyway.  Note that the post_setxattr hook call is not needed in
      the fallback case, as the inode_setsecurity hook call handles the incore
      inode security state update directly.  In contrast, we do call fsnotify in
      both cases.
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      Acked-by: default avatarJames Morris <jmorris@namei.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Mauricio Lin's avatar
      [PATCH] add /proc/pid/smaps · e070ad49
      Mauricio Lin authored
      Add a "smaps" entry to /proc/pid: show howmuch memory is resident in each
      People that want to perform a memory consumption analysing can use it
      mainly if someone needs to figure out which libraries can be reduced for
      embedded systems.  So the new features are the physical size of shared and
      clean [or dirty]; private and clean [or dirty].
      Take a look the example below:
      # cat /proc/4576/smaps
      08048000-080dc000 r-xp /bin/bash
      Size:               592 KB
      Rss:                500 KB
      Shared_Clean:       500 KB
      Shared_Dirty:         0 KB
      Private_Clean:        0 KB
      Private_Dirty:        0 KB
      080dc000-080e2000 rw-p /bin/bash
      Size:                24 KB
      Rss:                 24 KB
      Shared_Clean:         0 KB
      Shared_Dirty:         0 KB
      Private_Clean:        0 KB
      Private_Dirty:       24 KB
      080e2000-08116000 rw-p
      Size:               208 KB
      Rss:                208 KB
      Shared_Clean:         0 KB
      Shared_Dirty:         0 KB
      Private_Clean:        0 KB
      Private_Dirty:      208 KB
      b7e2b000-b7e34000 r-xp /lib/tls/libnss_files-2.3.2.so
      Size:                36 KB
      Rss:                 12 KB
      Shared_Clean:        12 KB
      Shared_Dirty:         0 KB
      Private_Clean:        0 KB
      Private_Dirty:        0 KB
      (Includes a cleanup from "Richard Purdie" <rpurdie@rpsys.net>)
      From: Torsten Foertsch <torsten.foertsch@gmx.net>
      show_smap calls first show_map and then prints its additional information to
      the seq_file.  show_map checks if all it has to print fits into the buffer and
      if yes marks the current vma as written.  While that is correct for show_map
      it is not for show_smap.  Here the vma should be marked as written only after
      the additional information is also written.
      The attached patch cures the problem.  It moves the functionality of the
      show_map function to a new function show_map_internal that is called with an
      additional struct mem_size_stats* argument.  Then show_map calls
      show_map_internal with NULL as struct mem_size_stats* whereas show_smap calls
      it with a real pointer.  Now the final
      	if (m->count < m->size)  /* vma is copied successfully */
      		m->version = (vma != get_gate_vma(task))? vma->vm_start: 0;
      is done only if the whole entry fits into the buffer.
      Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Christoph Lameter's avatar
      [PATCH] /proc/<pid>/numa_maps to show on which nodes pages reside · 6e21c8f1
      Christoph Lameter authored
      This patch was recently discussed on linux-mm:
      I inherited a large code base from Ray for page migration.  There was a
      small patch in there that I find to be very useful since it allows the
      display of the locality of the pages in use by a process.  I reworked that
      patch and came up with a /proc/<pid>/numa_maps that gives more information
      about the vma's of a process.  numa_maps is indexes by the start address
      found in /proc/<pid>/maps.  F.e.  with this patch you can see the page use
      of the "getty" process:
      margin:/proc/12008 # cat maps
      00000000-00004000 r--p 00000000 00:00 0
      2000000000000000-200000000002c000 r-xp 00000000 08:04 516                /lib/ld-2.3.3.so
      2000000000038000-2000000000040000 rw-p 00028000 08:04 516                /lib/ld-2.3.3.so
      2000000000040000-2000000000044000 rw-p 2000000000040000 00:00 0
      2000000000058000-2000000000260000 r-xp 00000000 08:04 54707842           /lib/tls/libc.so.6.1
      2000000000260000-2000000000268000 ---p 00208000 08:04 54707842           /lib/tls/libc.so.6.1
      2000000000268000-2000000000274000 rw-p 00200000 08:04 54707842           /lib/tls/libc.so.6.1
      2000000000274000-2000000000280000 rw-p 2000000000274000 00:00 0
      2000000000280000-20000000002b4000 r--p 00000000 08:04 9126923            /usr/lib/locale/en_US.utf8/LC_CTYPE
      2000000000300000-2000000000308000 r--s 00000000 08:04 60071467           /usr/lib/gconv/gconv-modules.cache
      2000000000318000-2000000000328000 rw-p 2000000000318000 00:00 0
      4000000000000000-4000000000008000 r-xp 00000000 08:04 29576399           /sbin/mingetty
      6000000000004000-6000000000008000 rw-p 00004000 08:04 29576399           /sbin/mingetty
      6000000000008000-600000000002c000 rw-p 6000000000008000 00:00 0          [heap]
      60000fff7fffc000-60000fff80000000 rw-p 60000fff7fffc000 00:00 0
      60000ffffff44000-60000ffffff98000 rw-p 60000ffffff44000 00:00 0          [stack]
      a000000000000000-a000000000020000 ---p 00000000 00:00 0                  [vdso]
      cat numa_maps
      2000000000000000 default MaxRef=43 Pages=11 Mapped=11 N0=4 N1=3 N2=2 N3=2
      2000000000038000 default MaxRef=1 Pages=2 Mapped=2 Anon=2 N0=2
      2000000000040000 default MaxRef=1 Pages=1 Mapped=1 Anon=1 N0=1
      2000000000058000 default MaxRef=43 Pages=61 Mapped=61 N0=14 N1=15 N2=16 N3=16
      2000000000268000 default MaxRef=1 Pages=2 Mapped=2 Anon=2 N0=2
      2000000000274000 default MaxRef=1 Pages=3 Mapped=3 Anon=3 N0=3
      2000000000280000 default MaxRef=8 Pages=3 Mapped=3 N0=3
      2000000000300000 default MaxRef=8 Pages=2 Mapped=2 N0=2
      2000000000318000 default MaxRef=1 Pages=1 Mapped=1 Anon=1 N2=1
      4000000000000000 default MaxRef=6 Pages=2 Mapped=2 N1=2
      6000000000004000 default MaxRef=1 Pages=1 Mapped=1 Anon=1 N0=1
      6000000000008000 default MaxRef=1 Pages=1 Mapped=1 Anon=1 N0=1
      60000fff7fffc000 default MaxRef=1 Pages=1 Mapped=1 Anon=1 N0=1
      60000ffffff44000 default MaxRef=1 Pages=1 Mapped=1 Anon=1 N0=1
      getty uses ld.so.  The first vma is the code segment which is used by 43
      other processes and the pages are evenly distributed over the 4 nodes.
      The second vma is the process specific data portion for ld.so.  This is
      only one page.
      The display format is:
      <startaddress>	 Links to information in /proc/<pid>/map
      <memory policy>  This can be "default" "interleave={}", "prefer=<node>" or "bind={<zones>}"
      MaxRef=		<maximum reference to a page in this vma>
      Pages=		<Nr of pages in use>
      Mapped=		<Nr of pages with mapcount >
      Anon=		<nr of anonymous pages>
      Nx=		<Nr of pages on Node x>
      The content of the proc-file is self-evident.  If this would be tied into
      the sparsemem system then the contents of this file would not be too
      Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
      Cc: Hugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
  3. 02 Sep, 2005 3 commits
  4. 29 Aug, 2005 1 commit
  5. 27 Aug, 2005 1 commit
    • James Bottomley's avatar
      [PATCH] Fix oops in sysfs_hash_and_remove_file() · 36676bcb
      James Bottomley authored
      The problem arises if an entity in sysfs is created and removed without
      ever having been made completely visible.  In SCSI this is triggered by
      removing a device while it's initialising.
      The problem appears to be that because it was never made visible in sysfs,
      the sysfs dentry has a null d_inode which oopses when a reference is made
      to it.  The solution is simply to check d_inode and assume the object was
      never made visible (and thus doesn't need deleting) if it's NULL.
      (akpm: possibly a stopgap for 2.6.13 scsi problems.  May not be the
      long-term fix)
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
  6. 26 Aug, 2005 4 commits
  7. 21 Aug, 2005 1 commit
  8. 20 Aug, 2005 7 commits
  9. 18 Aug, 2005 3 commits
    • Jan Kara's avatar
      [PATCH] reiserfs+acl+quota deadlock fix · d86c390f
      Jan Kara authored
      When i_acl_default is set to some error we do not hold the lock (hence we
      are not allowed to drop it and reacquire later).
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Cc: Jeff Mahoney <jeffm@suse.com>
      Cc: Chris Mason <mason@suse.com>
      Cc: <reiserfs-dev@namesys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Chuck Lever's avatar
      [PATCH] NFS: Introduce the use of inode->i_lock to protect fields in nfsi · dc59250c
      Chuck Lever authored
      Down the road we want to eliminate the use of the global kernel lock entirely
      from the NFS client.  To do this, we need to protect the fields in the
      nfs_inode structure adequately.  Start by serializing updates to the
      "cache_validity" field.
      Note this change addresses an SMP hang found by njw@osdl.org, where processes
      deadlock because nfs_end_data_update and nfs_revalidate_mapping update the
      "cache_validity" field without proper serialization.
      Test plan:
       Millions of fsx ops on SMP clients.  Run Nick Wilson's breaknfs program on
       large SMP clients.
      Signed-off-by: default avatarChuck Lever <cel@netapp.com>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Chuck Lever's avatar
      [PATCH] NFS: use atomic bitops to manipulate flags in nfsi->flags · 412d582e
      Chuck Lever authored
      Introduce atomic bitops to manipulate the bits in the nfs_inode structure's
      "flags" field.
      Using bitops means we can use a generic wait_on_bit call instead of an ad hoc
      locking scheme in fs/nfs/inode.c, so we can remove the "nfs_i_wait" field from
      nfs_inode at the same time.
      The other new flags field will continue to use bitmask and logic AND and OR.
      This permits several flags to be set at the same time efficiently.  The
      following patch adds a spin lock to protect these flags, and this spin lock
      will later cover other fields in the nfs_inode structure, amortizing the cost
      of using this type of serialization.
      Test plan:
       Millions of fsx ops on SMP clients.
      Signed-off-by: default avatarChuck Lever <cel@netapp.com>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>