> diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c > index 8a549db..1f70aec 100644 > --- a/drivers/block/pktcdvd.c > +++ b/drivers/block/pktcdvd.c > @@ -57,6 +57,7 @@ > #include <linux/seq_file.h> > #include <linux/miscdevice.h> > #include <linux/freezer.h> > +#include <linux/smp_lock.h> > #include <linux/mutex.h> > #include <linux/slab.h> > #include <scsi/scsi_cmnd.h> > @@ -2762,10 +2763,12 @@ out_mem: > static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) > { > struct pktcdvd_device *pd = bdev->bd_disk->private_data; > + int ret; > > VPRINTK("pkt_ioctl: cmd %x, dev %d:%d\n", cmd, > MAJOR(bdev->bd_dev), MINOR(bdev->bd_dev)); > > + lock_kernel(); > switch (cmd) { > case CDROMEJECT: > /* > @@ -2783,12 +2786,14 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, > case CDROM_LAST_WRITTEN: > case CDROM_SEND_PACKET: > case SCSI_IOCTL_SEND_COMMAND: > - return __blkdev_driver_ioctl(pd->bdev, mode, cmd, arg); > + ret = __blkdev_driver_ioctl(pd->bdev, mode, cmd, arg); > + break; > > default: > VPRINTK(DRIVER_NAME": Unknown ioctl for %s (%x)\n", pd->name, cmd); > - return -ENOTTY; > + ret = -ENOTTY; > } > + unlock_kernel(); > > return 0; > } You are loosing the return result here in the two error situations above. Initialise ret to 0 and return ret seems the easy way to do it. The rest looked ok - I only looked at the patches. Sam -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html