sg.c (32032df6c2f6c9c6b2ada2ce42322231824f70c2) sg.c (8a78362c4eefc1deddbefe2c7f38aabbc2429d6b)
1/*
2 * History:
3 * Started: Aug 9 by Lawrence Foard (entropy@world.std.com),
4 * to allow user process control of SCSI devices.
5 * Development Sponsored by Killy Corp. NY NY
6 *
7 * Original driver (sg.c):
8 * Copyright (C) 1992 Lawrence Foard

--- 273 unchanged lines hidden (view full) ---

282 }
283 if (sdp->detached) {
284 retval = -ENODEV;
285 goto error_out;
286 }
287 if (list_empty(&sdp->sfds)) { /* no existing opens on this device */
288 sdp->sgdebug = 0;
289 q = sdp->device->request_queue;
1/*
2 * History:
3 * Started: Aug 9 by Lawrence Foard (entropy@world.std.com),
4 * to allow user process control of SCSI devices.
5 * Development Sponsored by Killy Corp. NY NY
6 *
7 * Original driver (sg.c):
8 * Copyright (C) 1992 Lawrence Foard

--- 273 unchanged lines hidden (view full) ---

282 }
283 if (sdp->detached) {
284 retval = -ENODEV;
285 goto error_out;
286 }
287 if (list_empty(&sdp->sfds)) { /* no existing opens on this device */
288 sdp->sgdebug = 0;
289 q = sdp->device->request_queue;
290 sdp->sg_tablesize = min(queue_max_hw_segments(q),
291 queue_max_phys_segments(q));
290 sdp->sg_tablesize = queue_max_segments(q);
292 }
293 if ((sfp = sg_add_sfp(sdp, dev)))
294 filp->private_data = sfp;
295 else {
296 if (flags & O_EXCL) {
297 sdp->exclude = 0; /* undo if error */
298 wake_up_interruptible(&sdp->o_excl_wait);
299 }

--- 1071 unchanged lines hidden (view full) ---

1371
1372 SCSI_LOG_TIMEOUT(3, printk("sg_alloc: dev=%d \n", k));
1373 sprintf(disk->disk_name, "sg%d", k);
1374 disk->first_minor = k;
1375 sdp->disk = disk;
1376 sdp->device = scsidp;
1377 INIT_LIST_HEAD(&sdp->sfds);
1378 init_waitqueue_head(&sdp->o_excl_wait);
291 }
292 if ((sfp = sg_add_sfp(sdp, dev)))
293 filp->private_data = sfp;
294 else {
295 if (flags & O_EXCL) {
296 sdp->exclude = 0; /* undo if error */
297 wake_up_interruptible(&sdp->o_excl_wait);
298 }

--- 1071 unchanged lines hidden (view full) ---

1370
1371 SCSI_LOG_TIMEOUT(3, printk("sg_alloc: dev=%d \n", k));
1372 sprintf(disk->disk_name, "sg%d", k);
1373 disk->first_minor = k;
1374 sdp->disk = disk;
1375 sdp->device = scsidp;
1376 INIT_LIST_HEAD(&sdp->sfds);
1377 init_waitqueue_head(&sdp->o_excl_wait);
1379 sdp->sg_tablesize = min(queue_max_hw_segments(q),
1380 queue_max_phys_segments(q));
1378 sdp->sg_tablesize = queue_max_segments(q);
1381 sdp->index = k;
1382 kref_init(&sdp->d_ref);
1383
1384 write_unlock_irqrestore(&sg_index_lock, iflags);
1385
1386 error = 0;
1387 out:
1388 if (error) {

--- 1221 unchanged lines hidden ---
1379 sdp->index = k;
1380 kref_init(&sdp->d_ref);
1381
1382 write_unlock_irqrestore(&sg_index_lock, iflags);
1383
1384 error = 0;
1385 out:
1386 if (error) {

--- 1221 unchanged lines hidden ---