[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#752881: Found exact revision that causes problem



It looks innocent enough - but I have bisected it down to with (bad)
and just before (good)...

4c823cc3d568277aa6340d8df6981e34f4c4dee5 is the first bad commit

* commit 4c823cc
| Author: Ayan George <ayan@ayan.net>
| Date:   Wed Sep 21 10:02:13 2011 +0200
|
|     drivers/block/loop.c: remove unnecessary bdev argument from loop_clr_fd()
|
|     If the loop device is associated (lo->lo_state == Lo_bound), it will have
|     a valid bdev pointed to by lo->lo_device.  There is no reason to ever pass
|     an additional block_device pointer.
|
|     Signed-off-by: Ayan George <ayan.george@canonical.com>
|     Cc: Phillip Susi <psusi@cfl.rr.com>
|     Cc: Jens Axboe <axboe@kernel.dk>
|     Signed-off-by: Andrew Morton <akpm@google.com>
|     Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
| M     drivers/block/loop.c

% git diff 4c823cc3d568277aa6340d8df6981e34f4c4dee5~
4c823cc3d568277aa6340d8df6981e34f4c4dee5
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index c2ce03c..9b2f5d3 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -1051,10 +1051,11 @@ loop_init_xfer(struct loop_device *lo, struct
loop_func_table *xfer,
        return err;
 }

-static int loop_clr_fd(struct loop_device *lo, struct block_device *bdev)
+static int loop_clr_fd(struct loop_device *lo)
 {
        struct file *filp = lo->lo_backing_file;
        gfp_t gfp = lo->old_gfp_mask;
+       struct block_device *bdev = lo->lo_device;

        if (lo->lo_state != Lo_bound)
                return -ENXIO;
@@ -1372,7 +1373,7 @@ static int lo_ioctl(struct block_device *bdev,
fmode_t mode,
                break;
        case LOOP_CLR_FD:
                /* loop_clr_fd would have unlocked lo_ctl_mutex on success */
-               err = loop_clr_fd(lo, bdev);
+               err = loop_clr_fd(lo);
                if (!err)
                        goto out_unlocked;
                break;
@@ -1583,7 +1584,7 @@ static int lo_release(struct gendisk *disk, fmode_t mode)
                 * In autoclear mode, stop the loop thread
                 * and remove configuration after last close.
                 */
-               err = loop_clr_fd(lo, lo->lo_device);
+               err = loop_clr_fd(lo);
                if (!err)
                        goto out_unlocked;
        } else {


------
   Full git bisection history:
git bisect start
# good: [4c37b233616542536c75d20355d38d1065842103] fixes so can build
under wheezy
git bisect good 4c37b233616542536c75d20355d38d1065842103
# bad: [805a6af8dba5dfdd35ec35dc52ec0122400b2610] Linux 3.2
git bisect bad 805a6af8dba5dfdd35ec35dc52ec0122400b2610
# good: [22763c5cf3690a681551162c15d34d935308c8d7] Linux 2.6.32
git bisect good 22763c5cf3690a681551162c15d34d935308c8d7
# good: [8c4877a4128e7931077b024a891a4b284d8756a3] ehea: Use the
standard logging functions
git bisect good 8c4877a4128e7931077b024a891a4b284d8756a3
# good: [1d0738ea48829cb234fcaba830eef3461985ff44] ARM: mach-shmobile:
Use SCIFA and SCIFB port types on sh7377
git bisect good 1d0738ea48829cb234fcaba830eef3461985ff44
# good: [03b7898d300de62078cc130fbc83b84b1d1e0f8d] ARM: perf: move
active_events into struct arm_pmu
git bisect good 03b7898d300de62078cc130fbc83b84b1d1e0f8d
# good: [0e59e7e7feb5a12938fbf9135147eeda3238c6c4] Merge branch
'next-rebase' of
git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci
git bisect good 0e59e7e7feb5a12938fbf9135147eeda3238c6c4
# good: [1046a2c428bedd64c960dcfd0c57cc69a82fea2f] Merge branch
'v4l_for_linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
git bisect good 1046a2c428bedd64c960dcfd0c57cc69a82fea2f
# bad: [5b34b08996decc53a993287282e2cd42b90e02f7] Merge branch 'fixes'
of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
git bisect bad 5b34b08996decc53a993287282e2cd42b90e02f7
# bad: [32aaeffbd4a7457bf2f7448b33b5946ff2a960eb] Merge branch
'modsplit-Oct31_2011' of
git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux
git bisect bad 32aaeffbd4a7457bf2f7448b33b5946ff2a960eb
# bad: [ec773e99ab4abce07b1ae23117179c2861831964] Merge branch 'fixes'
of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm
git bisect bad ec773e99ab4abce07b1ae23117179c2861831964
# bad: [00411ee9308e4b5f4b04caaa01685f955e259373] watchdog: Convert
wm831x driver to watchdog core
git bisect bad 00411ee9308e4b5f4b04caaa01685f955e259373
# good: [b4fdcb02f1e39c27058a885905bd0277370ba441] Merge branch
'for-3.2/core' of git://git.kernel.dk/linux-block
git bisect good b4fdcb02f1e39c27058a885905bd0277370ba441
# good: [51ddf31da16b1ab9da861eafedad6d263faf4388] ARM: SAMSUNG:
Remove Samsung specific enum type for dma direction
git bisect good 51ddf31da16b1ab9da861eafedad6d263faf4388
# bad: [b8d8bdfe31a67981bbc398a4886ccc67aff521d5] Merge branch
'stable/for-jens-3.2' of git://oss.oracle.com/git/kwilk/xen into
for-3.2/drivers
git bisect bad b8d8bdfe31a67981bbc398a4886ccc67aff521d5
# good: [8a9c594422ecad912d6470888acdee9a1236ad68]
drivers/block/loop.c: emit uevent on auto release
git bisect good 8a9c594422ecad912d6470888acdee9a1236ad68
# good: [d11e6158307bed3f178399a4e6216eec67d16200] xen-blkfront: If no
barrier or flush is supported, use invalid operation.
git bisect good d11e6158307bed3f178399a4e6216eec67d16200
# good: [64391b2536ca92f9c589b2bfeaca3954896fe057] xen/blkback: Fix
the inhibition to map pages when discarding sector ranges.
git bisect good 64391b2536ca92f9c589b2bfeaca3954896fe057
# good: [6927d92091df2848fc0e6a693a017d4b2df549c2] xen/blkback: Fix
two races in the handling of barrier requests.
git bisect good 6927d92091df2848fc0e6a693a017d4b2df549c2
# bad: [4c823cc3d568277aa6340d8df6981e34f4c4dee5]
drivers/block/loop.c: remove unnecessary bdev argument from
loop_clr_fd()
git bisect bad 4c823cc3d568277aa6340d8df6981e34f4c4dee5

-------------------------

Summary of git revisions around the change:

--------------------------

  This rev is last one marked as bad : b8d8bdf
*   commit b8d8bdf  <- ***** Marked as bad ***
|\  Merge: 4c823cc 6927d92
| | Author: Jens Axboe <axboe@kernel.dk>
| | Date:   Thu Oct 20 15:10:59 2011 +0200
| |
| |     Merge branch 'stable/for-jens-3.2' of
git://oss.oracle.com/git/kwilk/xen into for-3.2/drivers
| |
|  X <- Ignore this 6927d92 branch - it's ok
. . <this change causes the fault... - from here onwards the scsi errors....
* | commit 4c823cc
| | Author: Ayan George <ayan@ayan.net>
| | Date:   Wed Sep 21 10:02:13 2011 +0200
| |
| |     drivers/block/loop.c: remove unnecessary bdev argument from
loop_clr_fd()
| |
| |     If the loop device is associated (lo->lo_state == Lo_bound),
it will have
| |     a valid bdev pointed to by lo->lo_device.  There is no reason
to ever pass
| |     an additional block_device pointer.
| |
| |     Signed-off-by: Ayan George <ayan.george@canonical.com>
| |     Cc: Phillip Susi <psusi@cfl.rr.com>
| |     Cc: Jens Axboe <axboe@kernel.dk>
| |     Signed-off-by: Andrew Morton <akpm@google.com>
| |     Signed-off-by: Jens Axboe <axboe@kernel.dk>
| |
| | M   drivers/block/loop.c
| |
* | commit 8a9c594  <- ***** marked as good ****
| | Author: Phillip Susi <psusi@cfl.rr.com>
| | Date:   Wed Sep 21 10:02:13 2011 +0200
| |
| |     drivers/block/loop.c: emit uevent on auto release
| |
| |     The loopback driver failed to emit the change uevent when auto releasing
| |     the device.  Fixed lo_release() to pass the bdev to loop_clr_fd() so it
| |     can emit the event.
| |
| |     Signed-off-by: Phillip Susi <psusi@cfl.rr.com>
| |     Cc: Jens Axboe <axboe@kernel.dk>
| |     Cc: Ayan George <ayan@ayan.net>
| |     Signed-off-by: Andrew Morton <akpm@google.com>
| |     Signed-off-by: Jens Axboe <axboe@kernel.dk>
| |
| | M   drivers/block/loop.c
| |


Reply to: