1. 23 10月, 2010 4 次提交
  2. 05 10月, 2010 2 次提交
    • J
      BKL: Remove BKL from NILFS2 · d6d4c19c
      Jan Blunck 提交于
      The BKL is only used in put_super, fill_super and remount_fs that are all
      three protected by the superblocks s_umount rw_semaphore. Therefore it is
      safe to remove the BKL entirely.
      Signed-off-by: NJan Blunck <jblunck@infradead.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      d6d4c19c
    • J
      BKL: Explicitly add BKL around get_sb/fill_super · db719222
      Jan Blunck 提交于
      This patch is a preparation necessary to remove the BKL from do_new_mount().
      It explicitly adds calls to lock_kernel()/unlock_kernel() around
      get_sb/fill_super operations for filesystems that still uses the BKL.
      
      I've read through all the code formerly covered by the BKL inside
      do_kern_mount() and have satisfied myself that it doesn't need the BKL
      any more.
      
      do_kern_mount() is already called without the BKL when mounting the rootfs
      and in nfsctl. do_kern_mount() calls vfs_kern_mount(), which is called
      from various places without BKL: simple_pin_fs(), nfs_do_clone_mount()
      through nfs_follow_mountpoint(), afs_mntpt_do_automount() through
      afs_mntpt_follow_link(). Both later functions are actually the filesystems
      follow_link inode operation. vfs_kern_mount() is calling the specified
      get_sb function and lets the filesystem do its job by calling the given
      fill_super function.
      
      Therefore I think it is safe to push down the BKL from the VFS to the
      low-level filesystems get_sb/fill_super operation.
      
      [arnd: do not add the BKL to those file systems that already
             don't use it elsewhere]
      Signed-off-by: NJan Blunck <jblunck@infradead.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Matthew Wilcox <matthew@wil.cx>
      Cc: Christoph Hellwig <hch@infradead.org>
      db719222
  3. 18 8月, 2010 1 次提交
  4. 16 8月, 2010 1 次提交
    • R
      nilfs2: fix list corruption after ifile creation failure · af4e3631
      Ryusuke Konishi 提交于
      If nilfs_attach_checkpoint() gets a memory allocation failure during
      creation of ifile, it will return without removing nilfs_sb_info
      struct from ns_supers list.  When a concurrently mounted snapshot is
      unmounted or another new snapshot is mounted after that, this causes
      kernel oops as below:
      
      > BUG: unable to handle kernel NULL pointer dereference at (null)
      > IP: [<f83662ff>] nilfs_find_sbinfo+0x74/0xa4 [nilfs2]
      > *pde = 00000000
      > Oops: 0000 [#1] SMP
      <snip>
      > Call Trace:
      >  [<f835dc29>] ? nilfs_get_sb+0x165/0x532 [nilfs2]
      >  [<c1173c87>] ? ida_get_new_above+0x16d/0x187
      >  [<c109a7f8>] ? alloc_vfsmnt+0x7e/0x10a
      >  [<c1070790>] ? kstrdup+0x2c/0x40
      >  [<c1089041>] ? vfs_kern_mount+0x96/0x14e
      >  [<c108913d>] ? do_kern_mount+0x32/0xbd
      >  [<c109b331>] ? do_mount+0x642/0x6a1
      >  [<c101a415>] ? do_page_fault+0x0/0x2d1
      >  [<c1099c00>] ? copy_mount_options+0x80/0xe2
      >  [<c10705d8>] ? strndup_user+0x48/0x67
      >  [<c109b3f1>] ? sys_mount+0x61/0x90
      >  [<c10027cc>] ? sysenter_do_call+0x12/0x22
      
      This fixes the problem.
      Signed-off-by: NRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
      Tested-by: NRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
      Cc: stable@kernel.org
      af4e3631
  5. 10 8月, 2010 1 次提交
  6. 23 7月, 2010 12 次提交
  7. 31 5月, 2010 1 次提交
  8. 10 5月, 2010 9 次提交
  9. 03 5月, 2010 1 次提交
    • R
      nilfs2: fix sync silent failure · 973bec34
      Ryusuke Konishi 提交于
      As of 32a88aa1, __sync_filesystem() will return 0 if s_bdi is not set.
      And nilfs does not set s_bdi anywhere.  I noticed this problem by the
      warning introduced by the recent commit 5129a469 ("Catch filesystem
      lacking s_bdi").
      
       WARNING: at fs/super.c:959 vfs_kern_mount+0xc5/0x14e()
       Hardware name: PowerEdge 2850
       Modules linked in: nilfs2 loop tpm_tis tpm tpm_bios video shpchp pci_hotplug output dcdbas
       Pid: 3773, comm: mount.nilfs2 Not tainted 2.6.34-rc6-debug #38
       Call Trace:
        [<c1028422>] warn_slowpath_common+0x60/0x90
        [<c102845f>] warn_slowpath_null+0xd/0x10
        [<c1095936>] vfs_kern_mount+0xc5/0x14e
        [<c1095a03>] do_kern_mount+0x32/0xbd
        [<c10a811e>] do_mount+0x671/0x6d0
        [<c1073794>] ? __get_free_pages+0x1f/0x21
        [<c10a684f>] ? copy_mount_options+0x2b/0xe2
        [<c107b634>] ? strndup_user+0x48/0x67
        [<c10a81de>] sys_mount+0x61/0x8f
        [<c100280c>] sysenter_do_call+0x12/0x32
      
      This ensures to set s_bdi for nilfs and fixes the sync silent failure.
      Signed-off-by: NRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
      Acked-by: NJens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      973bec34
  10. 14 3月, 2010 2 次提交
  11. 13 2月, 2010 3 次提交
  12. 17 12月, 2009 1 次提交
  13. 20 11月, 2009 2 次提交
    • R
      nilfs2: add norecovery mount option · 0234576d
      Ryusuke Konishi 提交于
      This adds "norecovery" mount option which disables temporal write
      access to read-only mounts or snapshots during mount/recovery.
      Without this option, write access will be even performed for those
      types of mounts; the temporal write access is needed to mount root
      file system read-only after an unclean shutdown.
      
      This option will be helpful when user wants to prevent any write
      access to the device.
      Signed-off-by: NRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
      Cc: Eric Sandeen <sandeen@redhat.com>
      0234576d
    • R
      nilfs2: move recovery completion into load_nilfs function · f50a4c81
      Ryusuke Konishi 提交于
      Although mount recovery of nilfs is integrated in load_nilfs()
      procedure, the completion of recovery was isolated from the procedure
      and performed at the end of the fill_super routine.
      
      This was somewhat confusing since the recovery is needed for the nilfs
      object, not for a super block instance.
      
      To resolve the inconsistency, this will integrate the recovery
      completion into load_nilfs().
      Signed-off-by: NRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
      f50a4c81