fs: Make write(2) interruptible by a fatal signal
[linux-2.6-block.git] / mm / filemap.c
index c0018f2d50e04e2ea03045989b742254be0a8489..c106d3b3cc640d56266c609f5c840e29c6fcae01 100644 (file)
@@ -2407,7 +2407,6 @@ static ssize_t generic_perform_write(struct file *file,
                                                iov_iter_count(i));
 
 again:
-
                /*
                 * Bring in the user page that we will copy from _first_.
                 * Otherwise there's a nasty deadlock on copying from the
@@ -2463,7 +2462,10 @@ again:
                written += copied;
 
                balance_dirty_pages_ratelimited(mapping);
-
+               if (fatal_signal_pending(current)) {
+                       status = -EINTR;
+                       break;
+               }
        } while (iov_iter_count(i));
 
        return written ? written : status;