io_uring: end waiting before task cancel attempts
[linux-2.6-microblaze.git] / fs / fcntl.c
index 19ac5ba..05b36b2 100644 (file)
@@ -781,9 +781,10 @@ void send_sigio(struct fown_struct *fown, int fd, int band)
 {
        struct task_struct *p;
        enum pid_type type;
+       unsigned long flags;
        struct pid *pid;
        
-       read_lock(&fown->lock);
+       read_lock_irqsave(&fown->lock, flags);
 
        type = fown->pid_type;
        pid = fown->pid;
@@ -804,7 +805,7 @@ void send_sigio(struct fown_struct *fown, int fd, int band)
                read_unlock(&tasklist_lock);
        }
  out_unlock_fown:
-       read_unlock(&fown->lock);
+       read_unlock_irqrestore(&fown->lock, flags);
 }
 
 static void send_sigurg_to_task(struct task_struct *p,
@@ -819,9 +820,10 @@ int send_sigurg(struct fown_struct *fown)
        struct task_struct *p;
        enum pid_type type;
        struct pid *pid;
+       unsigned long flags;
        int ret = 0;
        
-       read_lock(&fown->lock);
+       read_lock_irqsave(&fown->lock, flags);
 
        type = fown->pid_type;
        pid = fown->pid;
@@ -844,7 +846,7 @@ int send_sigurg(struct fown_struct *fown)
                read_unlock(&tasklist_lock);
        }
  out_unlock_fown:
-       read_unlock(&fown->lock);
+       read_unlock_irqrestore(&fown->lock, flags);
        return ret;
 }