1. 06 May, 2010 1 commit
    • Vivek Goyal's avatar
      blk-cgroup: Fix RCU correctness warning in cfq_init_queue() · dcf097b2
      Vivek Goyal authored
      It is necessary to be in an RCU read-side critical section when invoking
      css_id(), so this patch adds one to blkiocg_add_blkio_group().  This is
      actually a false positive, because this is called at initialization time
      and hence always refers to the root cgroup, which cannot go away.
      
      [  103.790505] ===================================================
      [  103.790509] [ INFO: suspicious rcu_dereference_check() usage. ]
      [  103.790511] ---------------------------------------------------
      [  103.790514] kernel/cgroup.c:4432 invoked rcu_dereference_check() without protection!
      [  103.790517]
      [  103.790517] other info that might help us debug this:
      [  103.790519]
      [  103.790521]
      [  103.790521] rcu_scheduler_active = 1, debug_locks = 1
      [  103.790524] 4 locks held by bash/4422:
      [  103.790526]  #0:  (&buffer->mutex){+.+.+.}, at: [<ffffffff8114befa>] sysfs_write_file+0x3c/0x144
      [  103.790537]  #1:  (s_active#102){.+.+.+}, at: [<ffffffff8114bfa5>] sysfs_write_file+0xe7/0x144
      [  103.790544]  #2:  (&q->sysfs_lock){+.+.+.}, at: [<ffffffff812263b1>] queue_attr_store+0x49/0x8f
      [  103.790552]  #3:  (&(&blkcg->lock)->rlock){......}, at: [<ffffffff8122e4db>] blkiocg_add_blkio_group+0x2b/0xad
      [  103.790560]
      [  103.790561] stack backtrace:
      [  103.790564] Pid: 4422, comm: bash Not tainted 2.6.34-rc4-blkio-second-crash #81
      [  103.790567] Call Trace:
      [  103.790572]  [<ffffffff81068f57>] lockdep_rcu_dereference+0x9d/0xa5
      [  103.790577]  [<ffffffff8107fac1>] css_id+0x44/0x57
      [  103.790581]  [<ffffffff8122e503>] blkiocg_add_blkio_group+0x53/0xad
      [  103.790586]  [<ffffffff81231936>] cfq_init_queue+0x139/0x32c
      [  103.790591]  [<ffffffff8121f2d0>] elv_iosched_store+0xbf/0x1bf
      [  103.790595]  [<ffffffff812263d8>] queue_attr_store+0x70/0x8f
      [  103.790599]  [<ffffffff8114bfa5>] ? sysfs_write_file+0xe7/0x144
      [  103.790603]  [<ffffffff8114bfc6>] sysfs_write_file+0x108/0x144
      [  103.790609]  [<ffffffff810f527f>] vfs_write+0xae/0x10b
      [  103.790612]  [<ffffffff81069863>] ? trace_hardirqs_on_caller+0x10c/0x130
      [  103.790616]  [<ffffffff810f539c>] sys_write+0x4a/0x6e
      [  103.790622]  [<ffffffff81002b5b>] system_call_fastpath+0x16/0x1b
      [  103.790625]
      Located-by: default avatarMiles Lane <miles.lane@gmail.com>
      Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      dcf097b2
  2. 04 May, 2010 1 commit
  3. 03 May, 2010 1 commit
    • Lars Ellenberg's avatar
      drbd: don't expose failed local READ to upper layers · 5c3c7e64
      Lars Ellenberg authored
      fix regression introduced in 8.3.3:
       commit a9b17323f2875f5d9b132c2b476a750bf44b10c7
       Author: Lars Ellenberg <lars.ellenberg@linbit.com>
       Date:   Wed Aug 12 15:18:33 2009 +0200
      
           out-of-spinlock completion of master bio
      
       : (bio_rw(bio) == READA)
          ? read_completed_with_error
          : read_ahead_completed_with_error;
      
      is obviously not what was intended.
      
      No one noticed because of
       * page-cache at work,
       * local RAIDs
      
      Impact:
      Failed local READs are not retried remotely,
      but errored to upper layers, causing filesystems
      to remount read-only, or worse.
      Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
      Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
      5c3c7e64
  4. 30 Apr, 2010 37 commits