On 5/4/20 10:21 AM, Christoph Hellwig wrote: > On Mon, May 04, 2020 at 10:16:40AM -0600, Jens Axboe wrote: >> 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? > > In that case disk_to_cdi will return NULL as it uses IS_REACHABLE > and the file systems won't query the CD-ROM specific information.
Got it, looks like that'll do the trick without nasty Kconfig dependencies. -- Jens Axboe