aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/cdrom/cdrom.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index 47e5b40510cb..db259e60289b 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -1206,25 +1206,26 @@ int check_for_audio_disc(struct cdrom_device_info * cdi,
1206 return 0; 1206 return 0;
1207} 1207}
1208 1208
1209/* Admittedly, the logic below could be performed in a nicer way. */
1210int cdrom_release(struct cdrom_device_info *cdi, struct file *fp) 1209int cdrom_release(struct cdrom_device_info *cdi, struct file *fp)
1211{ 1210{
1212 struct cdrom_device_ops *cdo = cdi->ops; 1211 struct cdrom_device_ops *cdo = cdi->ops;
1213 int opened_for_data; 1212 int opened_for_data;
1214 1213
1215 cdinfo(CD_CLOSE, "entering cdrom_release\n"); 1214 cdinfo(CD_CLOSE, "entering cdrom_release\n");
1216 1215
1217 if (cdi->use_count > 0) 1216 if (cdi->use_count > 0)
1218 cdi->use_count--; 1217 cdi->use_count--;
1219 if (cdi->use_count == 0) 1218
1219 if (cdi->use_count == 0) {
1220 cdinfo(CD_CLOSE, "Use count for \"/dev/%s\" now zero\n", cdi->name); 1220 cdinfo(CD_CLOSE, "Use count for \"/dev/%s\" now zero\n", cdi->name);
1221 if (cdi->use_count == 0)
1222 cdrom_dvd_rw_close_write(cdi); 1221 cdrom_dvd_rw_close_write(cdi);
1223 if (cdi->use_count == 0 && 1222
1224 (cdo->capability & CDC_LOCK) && !keeplocked) { 1223 if ((cdo->capability & CDC_LOCK) && !keeplocked) {
1225 cdinfo(CD_CLOSE, "Unlocking door!\n"); 1224 cdinfo(CD_CLOSE, "Unlocking door!\n");
1226 cdo->lock_door(cdi, 0); 1225 cdo->lock_door(cdi, 0);
1226 }
1227 } 1227 }
1228
1228 opened_for_data = !(cdi->options & CDO_USE_FFLAGS) || 1229 opened_for_data = !(cdi->options & CDO_USE_FFLAGS) ||
1229 !(fp && fp->f_flags & O_NONBLOCK); 1230 !(fp && fp->f_flags & O_NONBLOCK);
1230 1231