diff options
| -rw-r--r-- | fs/splice.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/splice.c b/fs/splice.c index 5428b0ff3b6f..2282650bdbe8 100644 --- a/fs/splice.c +++ b/fs/splice.c | |||
| @@ -378,10 +378,11 @@ __generic_file_splice_read(struct file *in, loff_t *ppos, | |||
| 378 | * If in nonblock mode then dont block on waiting | 378 | * If in nonblock mode then dont block on waiting |
| 379 | * for an in-flight io page | 379 | * for an in-flight io page |
| 380 | */ | 380 | */ |
| 381 | if (flags & SPLICE_F_NONBLOCK) | 381 | if (flags & SPLICE_F_NONBLOCK) { |
| 382 | break; | 382 | if (TestSetPageLocked(page)) |
| 383 | 383 | break; | |
| 384 | lock_page(page); | 384 | } else |
| 385 | lock_page(page); | ||
| 385 | 386 | ||
| 386 | /* | 387 | /* |
| 387 | * page was truncated, stop here. if this isn't the | 388 | * page was truncated, stop here. if this isn't the |
