Bug 32062

Summary: unable to mount root because of: "block: Require subsystems to explicitly allocate bio_set integrity mempool"
Product: IO/Storage Reporter: Giacomo Catenazzi (cate)
Component: Block LayerAssignee: Jens Axboe (axboe)
Severity: normal CC: florian, maciej.rutecki, martin.petersen, mkp, neilb, rjw, snitzer
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.38-08184-gd39dd11 Tree: Mainline
Regression: Yes
Bug Depends on:    
Bug Blocks: 32012    
Attachments: dmsg for good kernel
dmesg for bad kernel

Description Giacomo Catenazzi 2011-03-28 17:11:37 UTC

the commit a91a2785b200864aef2270ed6a3babac7a253a20 break mounting of my root (on LVM on a RAID10).

Reverting the above commit with last available kernel (2.6.38-08817-g45699a7) will solve the situation.

See #24012 for some info about my configuration (and previous good dmesg). In next hours I will post also the good and bad dmesg.

Comment 1 Giacomo Catenazzi 2011-03-28 17:40:27 UTC
Created attachment 52362 [details]
dmsg for good kernel
Comment 2 Giacomo Catenazzi 2011-03-28 17:43:42 UTC
Created attachment 52372 [details]
dmesg for bad kernel

On console I saw:

mdadm: failed to RUN_ARRAY /dev/md0: Input/output error
Failure: failed to start /dev/md0
  Volume group "cateee" not found
  Skipping volume group cateee
Unable to find LVM volume cateee/root

Then "usual" sulogin
Comment 3 Mike Snitzer 2011-03-28 18:28:34 UTC
commit a91a2785b20086 changed drivers/md/raid10.c (and other md_integrity_register callers) to check/propagate the md_integrity_register return value -- previously the return was ignored.

In contrast to DM, MD now requires a device be integrity capable by checking bdev_get_integrity().

It is fine to have md_integrity_register() fail with error but it should _not_ prevent the ability to start the MD array.

Long story short, seems the elevated importance of md_integrity_register()'s return needs to be reverted throughout all MD callers.
Comment 4 Martin K. Petersen 2011-03-28 18:45:17 UTC
Well, I'd rather handle the none-of-the-devices-are-capable case correctly.

I'll conjure up a patch...
Comment 5 Mike Snitzer 2011-03-28 18:52:27 UTC
(In reply to comment #4)
> Well, I'd rather handle the none-of-the-devices-are-capable case correctly.
> I'll conjure up a patch...

Sure, I was suggesting reverting the error propagation as a stop-gap.  A real fix is even better ;)
Comment 6 Rafael J. Wysocki 2011-03-28 21:40:22 UTC
First-Bad-Commit : a91a2785b200864aef2270ed6a3babac7a253a20
Comment 7 Giacomo Catenazzi 2011-03-29 05:34:56 UTC
Fixed by commit 89078d572eb9ce8d4c04264b8b0ba86de0d74c8f md: Fix integrity registration error when no devices are capable