ldlm_proc_setup and ldlm_proc_cleanup should reset global pde pointers otherwise remount may hit LASSERT(ldlm_ns_proc_dir == NULL); Also in libcfs_sock_ioctl, fput() includes itself sock_release. So don't call sock_release twice otherwise kernel may oops due to incorrect inode ref counting. Signed-off-by: Peng Tao <tao.peng@xxxxxxx> Signed-off-by: Andreas Dilger <andreas.dilger@xxxxxxxxx> --- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 6 ++++++ .../lustre/lustre/libcfs/linux/linux-tcpip.c | 9 ++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index f4d5b50..9052dc5 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -130,6 +130,8 @@ err_type: lprocfs_remove(&ldlm_type_proc_dir); err: ldlm_svc_proc_dir = NULL; + ldlm_type_proc_dir = NULL; + ldlm_ns_proc_dir = NULL; RETURN(rc); } @@ -143,6 +145,10 @@ void ldlm_proc_cleanup(void) if (ldlm_type_proc_dir) lprocfs_remove(&ldlm_type_proc_dir); + + ldlm_svc_proc_dir = NULL; + ldlm_type_proc_dir = NULL; + ldlm_ns_proc_dir = NULL; } static int lprocfs_ns_resources_seq_show(struct seq_file *m, void *v) diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c index 4a01816..6f1f047 100644 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c @@ -49,7 +49,6 @@ libcfs_sock_ioctl(int cmd, unsigned long arg) { mm_segment_t oldmm = get_fs(); struct socket *sock; - int fd = -1; int rc; struct file *sock_filp; @@ -61,6 +60,7 @@ libcfs_sock_ioctl(int cmd, unsigned long arg) sock_filp = sock_alloc_file(sock, 0, NULL); if (!sock_filp) { + sock_release(sock); rc = -ENOMEM; goto out; } @@ -71,12 +71,7 @@ libcfs_sock_ioctl(int cmd, unsigned long arg) set_fs(oldmm); fput(sock_filp); - - out: - if (fd >= 0) - sys_close(fd); - else - sock_release(sock); +out: return rc; } -- 1.7.9.5 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel