Comment 9 for bug 1860231

Revision history for this message
Stefan Bader (smb) wrote :

With additional data it is basically a bug in either the mount syscall, the generic_make_request_checks, or dm.c. Basically device-mapper is set up in two stages, the initial device creation and the table load. Somehwere around v4.1 things were changed to defer setting the make-request function of the device (queue) to when the mapping table gets loaded.

One can create such a intermediate setup using "dmsetup create -n <name>". Then a "mount /dev/dm-?" triggers the bug. Since generic_make_request_checks has a check for device->queue == NULL but not for device->queue->make_request_fn == NULL.

Interestingly neither blkid nor dd would trigger this. Likely because they first check the size which is still 0 at that time. Only mount seems to go off and try to read superblock info regardless.