I just finished a character device driver and I it appears that when fclose() is called on the device the release() method is called as well even if the device has been opened multiple times.