1. 09 11月, 2006 1 次提交
  2. 06 11月, 2006 6 次提交
  3. 05 11月, 2006 1 次提交
  4. 04 11月, 2006 8 次提交
    • A
      [PATCH] Fix user.* xattr permission check for sticky dirs · f1f2d871
      Andreas Gruenbacher 提交于
      The user.* extended attributes are only allowed on regular files and
      directories.  Sticky directories further restrict write access to the owner
      and privileged users.  (See the attr(5) man page for an explanation.)
      
      The original check in ext2/ext3 when user.* xattrs were merged was more
      restrictive than intended, and when the xattr permission checks were moved
      into the VFS, read access to user.* attributes on sticky directores ended
      up being denied in addition.
      
      Originally-from: Gerard Neil <xyzzy@devferret.org>
      Signed-off-by: NAndreas Gruenbacher <agruen@suse.de>
      Cc: Dave Kleikamp <shaggy@austin.ibm.com>
      Cc: Jan Engelhardt <jengelh@linux01.gwdg.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f1f2d871
    • J
      [PATCH] reiserfs: reset errval after initializing bitmap cache · d2c89a42
      Jeff Mahoney 提交于
      Callers after reiserfs_init_bitmap_cache() expect errval to contain -EINVAL
      until much later.  If a condition fails before errval is reset later,
      reiserfs_fill_super() will mistakenly return 0, causing an Oops in
      do_add_mount().  This patch resets errval to -EINVAL after the call.
      
      I view this as a temporary fix and real error codes should be used
      throughout reiserfs_fill_super().
      Signed-off-by: NJeff Mahoney <jeffm@suse.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d2c89a42
    • S
      [PATCH] NFS4: fix for recursive locking problem · 7ef55b8a
      Srinivasa Ds 提交于
      When I was performing some operations on NFS, I got below error on server
      side.
      
        =============================================
        [ INFO: possible recursive locking detected ]
        2.6.19-prep #1
        ---------------------------------------------
        nfsd4/3525 is trying to acquire lock:
         (&inode->i_mutex){--..}, at: [<c0611e5a>] mutex_lock+0x21/0x24
      
        but task is already holding lock:
         (&inode->i_mutex){--..}, at: [<c0611e5a>] mutex_lock+0x21/0x24
      
        other info that might help us debug this:
        2 locks held by nfsd4/3525:
         #0:  (client_mutex){--..}, at: [<c0611e5a>] mutex_lock+0x21/0x24
         #1:  (&inode->i_mutex){--..}, at: [<c0611e5a>] mutex_lock+0x21/0x24
      
        stack backtrace:
         [<c04051ed>] show_trace_log_lvl+0x58/0x16a
         [<c04057fa>] show_trace+0xd/0x10
         [<c0405913>] dump_stack+0x19/0x1b
         [<c043b6f1>] __lock_acquire+0x778/0x99c
         [<c043be86>] lock_acquire+0x4b/0x6d
         [<c0611ceb>] __mutex_lock_slowpath+0xbc/0x20a
         [<c0611e5a>] mutex_lock+0x21/0x24
         [<c047fd7e>] vfs_rmdir+0x76/0xf8
         [<f94b7ce9>] nfsd4_clear_clid_dir+0x2c/0x41 [nfsd]
         [<f94b7de9>] nfsd4_remove_clid_dir+0xb1/0xe8 [nfsd]
         [<f94b307b>] laundromat_main+0x9b/0x1c3 [nfsd]
         [<c04333d6>] run_workqueue+0x7a/0xbb
         [<c0433d0b>] worker_thread+0xd2/0x107
         [<c0436285>] kthread+0xc3/0xf2
         [<c0402005>] kernel_thread_helper+0x5/0xb
        ===================================================================
      
      Cause for this problem was,2 successive mutex_lock calls on 2 diffrent inodes ,as shown below
      
      	static int
      	nfsd4_clear_clid_dir(struct dentry *dir, struct dentry *dentry)
      	{
      	        int status;
      
      	        /* For now this directory should already be empty, but we empty it of
              	 * any regular files anyway, just in case the directory was created by
      	         * a kernel from the future.... */
              	nfsd4_list_rec_dir(dentry, nfsd4_remove_clid_file);
      	        mutex_lock(&dir->d_inode->i_mutex);
      	        status = vfs_rmdir(dir->d_inode, dentry);
      	...
      
      	int vfs_rmdir(struct inode *dir, struct dentry *dentry)
      	{
      	        int error = may_delete(dir, dentry, 1);
      
      	        if (error)
      	                return error;
      
      	        if (!dir->i_op || !dir->i_op->rmdir)
              	        return -EPERM;
      
      	        DQUOT_INIT(dir);
      
      	        mutex_lock(&dentry->d_inode->i_mutex);
      	...
      
      So I have developed the patch to overcome this problem.
      Signed-off-by: NSrinivasa DS <srinivasa@in.ibm.com>
      Cc: Neil Brown <neilb@suse.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7ef55b8a
    • O
      [PATCH] gfs2: ->readpages() fixes · 7011774d
      OGAWA Hirofumi 提交于
      This just ignore the remaining pages, and remove unneeded unlock_pages().
      Signed-off-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Steven French <sfrench@us.ibm.com>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Acked-by: NSteven Whitehouse <swhiteho@redhat.com>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7011774d
    • O
      [PATCH] fuse: ->readpages() cleanup · 2e990021
      OGAWA Hirofumi 提交于
      This just ignore the remaining pages.
      Signed-off-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Steven French <sfrench@us.ibm.com>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Cc: Steven Whitehouse <swhiteho@redhat.com>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2e990021
    • O
      [PATCH] cifs: ->readpages() fixes · 05ac9d4b
      OGAWA Hirofumi 提交于
      This just ignore the remaining pages, and will fix a forgot put_pages_list().
      Signed-off-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Steven French <sfrench@us.ibm.com>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Cc: Steven Whitehouse <swhiteho@redhat.com>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      05ac9d4b
    • H
      [PATCH] sys_pselect7 vs compat_sys_pselect7 uaccess error handling · 87c2b7c0
      Heiko Carstens 提交于
      75833345 fixes the not checked copy_to_user
      return value of compat_sys_pselect7.  I ran into this too because of an old
      source tree, but my fix would look quite a bit different to Andi's fix.
      
      The reason is that the compat function IMHO should behave the very same as
      the non-compat function if possible.  Since sys_pselect7 does not return
      -EFAULT in this specific case, change the compat code so it behaves like
      sys_pselect7.
      
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      87c2b7c0
    • M
      [PATCH] eCryptfs: Fix pointer deref · 7bd473fc
      Michael Halcrow 提交于
      I missed a pointer dereference in this kmalloc result check.
      Signed-off-by: NMichael Halcrow <mhalcrow@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7bd473fc
  5. 03 11月, 2006 1 次提交
  6. 02 11月, 2006 1 次提交
  7. 01 11月, 2006 7 次提交
  8. 31 10月, 2006 5 次提交
  9. 29 10月, 2006 9 次提交
    • D
      [PATCH] VFS: Fix an error in unused dentry counting · f8713576
      David Howells 提交于
      With Vasily Averin <vvs@sw.ru>
      
      Fix an error in unused dentry counting in shrink_dcache_for_umount_subtree()
      in which the count is modified without the dcache_lock held.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Cc: Vasily Averin <vvs@sw.ru>
      Cc: Neil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f8713576
    • V
      [PATCH] missing unused dentry in prune_dcache()? · 6eac3f93
      Vasily Averin 提交于
      On the the following patch:
      http://linux.bkbits.net:8080/linux-2.6/gnupatch@449b144ecSF1rYskg3q-SeR2vf88zg
      
      # ChangeSet
      #   2006/06/22 15:05:57-07:00 neilb@suse.de
      #   [PATCH] Fix dcache race during umount
      
      #   If prune_dcache finds a dentry that it cannot free, it leaves it where it
      #   is (at the tail of the list) and exits, on the assumption that some other
      #   thread will be removing that dentry soon.
      
      However as far as I see this comment is not correct: when we cannot take
      s_umount rw_semaphore (for example because it was taken in do_remount) this
      dentry is already extracted from dentry_unused list and we do not add it
      into the list again.  Therefore dentry will not be found by prune_dcache()
      and shrink_dcache_sb() and will leave in memory very long time until the
      partition will be unmounted.
      
      The patch adds this dentry into tail of the dentry_unused list.
      Signed-off-by: NVasily Averin <vvs@sw.ru>
      Cc: Neil Brown <neilb@suse.de>
      Acked-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6eac3f93
    • H
      [PATCH] hugetlb: fix prio_tree unit · 856fc295
      Hugh Dickins 提交于
      hugetlb_vmtruncate_list was misconverted to prio_tree: its prio_tree is in
      units of PAGE_SIZE (PAGE_CACHE_SIZE) like any other, not HPAGE_SIZE (whereas
      its radix_tree is kept in units of HPAGE_SIZE, otherwise slots would be
      absurdly sparse).
      
      At first I thought the error benign, just calling __unmap_hugepage_range on
      more vmas than necessary; but on 32-bit machines, when the prio_tree is
      searched correctly, it happens to ensure the v_offset calculation won't
      overflow.  As it stood, when truncating at or beyond 4GB, it was liable to
      discard pages COWed from lower offsets; or even to clear pmd entries of
      preceding vmas, triggering exit_mmap's BUG_ON(nr_ptes).
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Cc: Adam Litke <agl@us.ibm.com>
      Cc: David Gibson <david@gibson.dropbear.id.au>
      Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      856fc295
    • H
      [PATCH] hugetlb: fix size=4G parsing · b9d7e6ae
      Hugh Dickins 提交于
      On 32-bit machines, mount -t hugetlbfs -o size=4G gave a 0GB filesystem,
      size=5G gave a 1GB filesystem etc: there's no point in masking size with
      HPAGE_MASK just before shifting its lower bits away, and since HPAGE_MASK is a
      UL, that removed all the higher bits of the unsigned long long size.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Cc: Adam Litke <agl@us.ibm.com>
      Cc: David Gibson <david@gibson.dropbear.id.au>
      Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b9d7e6ae
    • P
      [PATCH] Fix potential OOPs in blkdev_open() · 6a2aae06
      Pavel Emelianov 提交于
      blkdev_open() calls bc_acquire() to get a struct block_device.  Since
      bc_acquire() may return NULL when system is out of memory an appropriate
      check is required.
      Signed-off-by: NPavel Emelianov <xemul@openvz.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6a2aae06
    • E
      [PATCH] jbd2: journal_dirty_data re-check for unmapped buffers · 9b57988d
      Eric Sandeen 提交于
      When running several fsx's and other filesystem stress tests, we found
      cases where an unmapped buffer was still being sent to submit_bh by the
      ext3 dirty data journaling code.
      
      I saw this happen in two ways, both related to another thread doing a
      truncate which would unmap the buffer in question.
      
      Either we would get into journal_dirty_data with a bh which was already
      unmapped (although journal_dirty_data_fn had checked for this earlier, the
      state was not locked at that point), or it would get unmapped in the middle
      of journal_dirty_data when we dropped locks to call sync_dirty_buffer.
      
      By re-checking for mapped state after we've acquired the bh state lock, we
      should avoid these races.  If we find a buffer which is no longer mapped,
      we essentially ignore it, because journal_unmap_buffer has already decided
      that this buffer can go away.
      
      I've also added tracepoints in these two cases, and made a couple other
      tracepoint changes that I found useful in debugging this.
      Signed-off-by: NEric Sandeen <esandeen@redhat.com>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9b57988d
    • E
      [PATCH] jbd: journal_dirty_data re-check for unmapped buffers · f58a74dc
      Eric Sandeen 提交于
      When running several fsx's and other filesystem stress tests, we found
      cases where an unmapped buffer was still being sent to submit_bh by the
      ext3 dirty data journaling code.
      
      I saw this happen in two ways, both related to another thread doing a
      truncate which would unmap the buffer in question.
      
      Either we would get into journal_dirty_data with a bh which was already
      unmapped (although journal_dirty_data_fn had checked for this earlier, the
      state was not locked at that point), or it would get unmapped in the middle
      of journal_dirty_data when we dropped locks to call sync_dirty_buffer.
      
      By re-checking for mapped state after we've acquired the bh state lock, we
      should avoid these races.  If we find a buffer which is no longer mapped,
      we essentially ignore it, because journal_unmap_buffer has already decided
      that this buffer can go away.
      
      I've also added tracepoints in these two cases, and made a couple other
      tracepoint changes that I found useful in debugging this.
      Signed-off-by: NEric Sandeen <esandeen@redhat.com>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f58a74dc
    • R
      [PATCH] ext4: fix printk format warnings · 1939e49a
      Randy Dunlap 提交于
      fs/ext4/resize.c:72: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:76: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:81: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:85: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:89: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:89: warning: long long unsigned int format, __u64 arg (arg 5)
      fs/ext4/resize.c:93: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:93: warning: long long unsigned int format, __u64 arg (arg 5)
      fs/ext4/resize.c:98: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:103: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:109: warning: long long unsigned int format, __u64 arg (arg 4)
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1939e49a
    • N
      [PATCH] mm: clean up pagecache allocation · 2ae88149
      Nick Piggin 提交于
      - Consolidate page_cache_alloc
      
      - Fix splice: only the pagecache pages and filesystem data need to use
        mapping_gfp_mask.
      
      - Fix grab_cache_page_nowait: same as splice, also honour NUMA placement.
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2ae88149
  10. 25 10月, 2006 1 次提交