On 4/25/20 1:57 AM, Christoph Hellwig wrote: > if (HFSPLUS_SB(sb)->session >= 0) { > + struct cdrom_tocentry te; > + > + if (!cdi) > + return -EINVAL; > + > te.cdte_track = HFSPLUS_SB(sb)->session; > te.cdte_format = CDROM_LBA; > - res = ioctl_by_bdev(sb->s_bdev, > - CDROMREADTOCENTRY, (unsigned long)&te); > - if (!res && (te.cdte_ctrl & CDROM_DATA_TRACK) == 4) { > - *start = (sector_t)te.cdte_addr.lba << 2; > - return 0; > + if (cdrom_read_tocentry(cdi, &te) || > + (te.cdte_ctrl & CDROM_DATA_TRACK) != 4) { > + pr_err("invalid session number or type of track\n"); > + return -EINVAL; > } I must be missing something obvious from just looking over the patches, but how does this work if cdrom is modular and hfsplus is builtin? -- Jens Axboe