From: David Teigland An extra refcount was being left on devices. Signed-off-by: Patrick Caulfield Signed-off-by: David Teigland Signed-off-by: Andrew Morton --- drivers/dlm/device.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN drivers/dlm/device.c~dlm-device-interface-fix-device-refcount drivers/dlm/device.c --- devel/drivers/dlm/device.c~dlm-device-interface-fix-device-refcount 2005-07-16 13:35:51.000000000 -0700 +++ devel-akpm/drivers/dlm/device.c 2005-07-16 13:35:51.000000000 -0700 @@ -449,8 +449,8 @@ static int dlm_open(struct inode *inode, spin_lock_init(&f->fi_ast_lock); init_waitqueue_head(&f->fi_wait); f->fi_ls = lsinfo; - atomic_set(&f->fi_refcnt, 1); f->fi_flags = 0; + get_file_info(f); set_bit(1, &f->fi_flags); file->private_data = f; @@ -602,6 +602,7 @@ static int dlm_close(struct inode *inode } } up(&user_ls_lock); + put_file_info(f); /* Restore signals */ sigprocmask(SIG_SETMASK, &tmpsig, NULL); _