Whamcloud - gitweb
b=18728
authoranserper <anserper>
Tue, 14 Apr 2009 00:04:32 +0000 (00:04 +0000)
committeranserper <anserper>
Tue, 14 Apr 2009 00:04:32 +0000 (00:04 +0000)
i=Alex Zhuravlev
i=Alexander Zarochentsev

decrease response time for write-waiting threads

lustre/llite/file.c

index 7949e69..2704e63 100644 (file)
@@ -1715,7 +1715,9 @@ static ssize_t ll_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
 
         LASSERT(ll_i2info(inode)->lli_smd != NULL);
 
-        down(&ll_i2info(inode)->lli_write_sem);
+        /* signal(7) specifies that write(2) and writev(2) should be restarted */
+        if (down_interruptible(&ll_i2info(inode)->lli_write_sem))
+                RETURN(-ERESTARTSYS);
 
 repeat:
         chunk = 0; /* just to fix gcc's warning */