aboutsummaryrefslogtreecommitdiffstats
path: root/fs/dlm
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2013-08-12 16:22:43 -0400
committerDavid Teigland <teigland@redhat.com>2013-08-12 16:22:43 -0400
commitc6ca7bc91d51582ff9e8ab29f675dbc3c40f5742 (patch)
treeb464803fd8fc9346fd660e43d8ecfa5bd392c6d3 /fs/dlm
parentededf305a8d843c12038ae48eb68529016b3e91f (diff)
dlm: remove signal blocking
The signal blocking was incorrect and unnecessary so just remove it. Signed-off-by: David Teigland <teigland@redhat.com>
Diffstat (limited to 'fs/dlm')
-rw-r--r--fs/dlm/user.c25
1 files changed, 6 insertions, 19 deletions
diff --git a/fs/dlm/user.c b/fs/dlm/user.c
index 911649a47dd5..142e21655eed 100644
--- a/fs/dlm/user.c
+++ b/fs/dlm/user.c
@@ -493,7 +493,6 @@ static ssize_t device_write(struct file *file, const char __user *buf,
493{ 493{
494 struct dlm_user_proc *proc = file->private_data; 494 struct dlm_user_proc *proc = file->private_data;
495 struct dlm_write_request *kbuf; 495 struct dlm_write_request *kbuf;
496 sigset_t tmpsig, allsigs;
497 int error; 496 int error;
498 497
499#ifdef CONFIG_COMPAT 498#ifdef CONFIG_COMPAT
@@ -557,9 +556,6 @@ static ssize_t device_write(struct file *file, const char __user *buf,
557 goto out_free; 556 goto out_free;
558 } 557 }
559 558
560 sigfillset(&allsigs);
561 sigprocmask(SIG_BLOCK, &allsigs, &tmpsig);
562
563 error = -EINVAL; 559 error = -EINVAL;
564 560
565 switch (kbuf->cmd) 561 switch (kbuf->cmd)
@@ -567,7 +563,7 @@ static ssize_t device_write(struct file *file, const char __user *buf,
567 case DLM_USER_LOCK: 563 case DLM_USER_LOCK:
568 if (!proc) { 564 if (!proc) {
569 log_print("no locking on control device"); 565 log_print("no locking on control device");
570 goto out_sig; 566 goto out_free;
571 } 567 }
572 error = device_user_lock(proc, &kbuf->i.lock); 568 error = device_user_lock(proc, &kbuf->i.lock);
573 break; 569 break;
@@ -575,7 +571,7 @@ static ssize_t device_write(struct file *file, const char __user *buf,
575 case DLM_USER_UNLOCK: 571 case DLM_USER_UNLOCK:
576 if (!proc) { 572 if (!proc) {
577 log_print("no locking on control device"); 573 log_print("no locking on control device");
578 goto out_sig; 574 goto out_free;
579 } 575 }
580 error = device_user_unlock(proc, &kbuf->i.lock); 576 error = device_user_unlock(proc, &kbuf->i.lock);
581 break; 577 break;
@@ -583,7 +579,7 @@ static ssize_t device_write(struct file *file, const char __user *buf,
583 case DLM_USER_DEADLOCK: 579 case DLM_USER_DEADLOCK:
584 if (!proc) { 580 if (!proc) {
585 log_print("no locking on control device"); 581 log_print("no locking on control device");
586 goto out_sig; 582 goto out_free;
587 } 583 }
588 error = device_user_deadlock(proc, &kbuf->i.lock); 584 error = device_user_deadlock(proc, &kbuf->i.lock);
589 break; 585 break;
@@ -591,7 +587,7 @@ static ssize_t device_write(struct file *file, const char __user *buf,
591 case DLM_USER_CREATE_LOCKSPACE: 587 case DLM_USER_CREATE_LOCKSPACE:
592 if (proc) { 588 if (proc) {
593 log_print("create/remove only on control device"); 589 log_print("create/remove only on control device");
594 goto out_sig; 590 goto out_free;
595 } 591 }
596 error = device_create_lockspace(&kbuf->i.lspace); 592 error = device_create_lockspace(&kbuf->i.lspace);
597 break; 593 break;
@@ -599,7 +595,7 @@ static ssize_t device_write(struct file *file, const char __user *buf,
599 case DLM_USER_REMOVE_LOCKSPACE: 595 case DLM_USER_REMOVE_LOCKSPACE:
600 if (proc) { 596 if (proc) {
601 log_print("create/remove only on control device"); 597 log_print("create/remove only on control device");
602 goto out_sig; 598 goto out_free;
603 } 599 }
604 error = device_remove_lockspace(&kbuf->i.lspace); 600 error = device_remove_lockspace(&kbuf->i.lspace);
605 break; 601 break;
@@ -607,7 +603,7 @@ static ssize_t device_write(struct file *file, const char __user *buf,
607 case DLM_USER_PURGE: 603 case DLM_USER_PURGE:
608 if (!proc) { 604 if (!proc) {
609 log_print("no locking on control device"); 605 log_print("no locking on control device");
610 goto out_sig; 606 goto out_free;
611 } 607 }
612 error = device_user_purge(proc, &kbuf->i.purge); 608 error = device_user_purge(proc, &kbuf->i.purge);
613 break; 609 break;
@@ -617,8 +613,6 @@ static ssize_t device_write(struct file *file, const char __user *buf,
617 kbuf->cmd); 613 kbuf->cmd);
618 } 614 }
619 615
620 out_sig:
621 sigprocmask(SIG_SETMASK, &tmpsig, NULL);
622 out_free: 616 out_free:
623 kfree(kbuf); 617 kfree(kbuf);
624 return error; 618 return error;
@@ -659,15 +653,11 @@ static int device_close(struct inode *inode, struct file *file)
659{ 653{
660 struct dlm_user_proc *proc = file->private_data; 654 struct dlm_user_proc *proc = file->private_data;
661 struct dlm_ls *ls; 655 struct dlm_ls *ls;
662 sigset_t tmpsig, allsigs;
663 656
664 ls = dlm_find_lockspace_local(proc->lockspace); 657 ls = dlm_find_lockspace_local(proc->lockspace);
665 if (!ls) 658 if (!ls)
666 return -ENOENT; 659 return -ENOENT;
667 660
668 sigfillset(&allsigs);
669 sigprocmask(SIG_BLOCK, &allsigs, &tmpsig);
670
671 set_bit(DLM_PROC_FLAGS_CLOSING, &proc->flags); 661 set_bit(DLM_PROC_FLAGS_CLOSING, &proc->flags);
672 662
673 dlm_clear_proc_locks(ls, proc); 663 dlm_clear_proc_locks(ls, proc);
@@ -685,9 +675,6 @@ static int device_close(struct inode *inode, struct file *file)
685 /* FIXME: AUTOFREE: if this ls is no longer used do 675 /* FIXME: AUTOFREE: if this ls is no longer used do
686 device_remove_lockspace() */ 676 device_remove_lockspace() */
687 677
688 sigprocmask(SIG_SETMASK, &tmpsig, NULL);
689 recalc_sigpending();
690
691 return 0; 678 return 0;
692} 679}
693 680