diff -urN oldtree/fs/open.c newtree/fs/open.c --- oldtree/fs/open.c 2006-08-18 15:01:22.000000000 -0400 +++ newtree/fs/open.c 2006-08-20 04:27:28.508158500 -0400 @@ -1199,7 +1199,13 @@ retval = filp_close(filp, files); /* can't restart close syscall because file table entry was cleared */ - return (retval == -ERESTARTSYS) ? -EINTR : retval; + if (unlikely(retval == -ERESTARTSYS || + retval == -ERESTARTNOINTR || + retval == -ERESTARTNOHAND || + retval == -ERESTART_RESTARTBLOCK)) + retval = -EINTR; + + return retval; out_unlock: spin_unlock(&files->file_lock);