disk: Close device file handle when freeing structures
This commit is contained in:
1 parent
31569c169a
commit
ccec7a182f
3 files changed
+12
-1
No files matched your search
@@ -413,6 +413,13 @@ int disk_init(struct usb_device_info * dev) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void disk_exit(struct usb_device_info * dev) {
|
||||||
|
|
||||||
|
if ( dev->data >= 0 )
|
||||||
|
close(dev->data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
enum device disk_get_device(struct usb_device_info * dev) {
|
enum device disk_get_device(struct usb_device_info * dev) {
|
||||||
|
|
||||||
return dev->device;
|
return dev->device;
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
#include "usb-device.h"
|
#include "usb-device.h"
|
||||||
|
|
||||||
int disk_init(struct usb_device_info * dev);
|
int disk_init(struct usb_device_info * dev);
|
||||||
|
void disk_exit(struct usb_device_info * dev);
|
||||||
|
|
||||||
enum device disk_get_device(struct usb_device_info * dev);
|
enum device disk_get_device(struct usb_device_info * dev);
|
||||||
|
|
||||||
|
|||||||
+4
-1
@@ -91,8 +91,11 @@ clean:
|
|||||||
|
|
||||||
void dev_free(struct device_info * dev) {
|
void dev_free(struct device_info * dev) {
|
||||||
|
|
||||||
if ( dev->usb )
|
if ( dev->usb ) {
|
||||||
|
if ( dev->usb->flash_device->protocol == FLASH_DISK )
|
||||||
|
disk_exit(dev->usb);
|
||||||
usb_close_device(dev->usb);
|
usb_close_device(dev->usb);
|
||||||
|
}
|
||||||
free(dev);
|
free(dev);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user