static int zf_open(struct inode *inode, struct file *file) { switch(MINOR(inode->i_rdev)){ case WATCHDOG_MINOR: spin_lock(&zf_lock); if(zf_is_open){ spin_unlock(&zf_lock); return -EBUSY; } #ifdef CONFIG_WATCHDOG_NOWAYOUT MOD_INC_USE_COUNT; #endif zf_is_open = 1; spin_unlock(&zf_lock); zf_timer_on(); return 0; default: return -ENODEV; } }
static int zf_open(struct inode *inode, struct file *file) { switch(MINOR(inode->i_rdev)){ case WATCHDOG_MINOR: spin_lock(&zf_lock); if(zf_is_open){ spin_unlock(&zf_lock); return -EBUSY; } if (nowayout) { MOD_INC_USE_COUNT; } zf_is_open = 1; spin_unlock(&zf_lock); zf_timer_on(); return 0; default: return -ENODEV; } }