diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-25 07:58:25 -1000 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-25 07:58:25 -1000 |
commit | f61ec2c97cf8a517cd5714efc919138a9d8991cf (patch) | |
tree | f2d36fc8ecf749c739551a54b5ee6eb93c0255ba /fs/afs/write.c | |
parent | 7753ea09640807104c8e353f6d5dc47ee55307cf (diff) | |
parent | 43dd388b21c722616413781bd434522376e117cc (diff) | |
download | talos-op-linux-f61ec2c97cf8a517cd5714efc919138a9d8991cf.tar.gz talos-op-linux-f61ec2c97cf8a517cd5714efc919138a9d8991cf.zip |
Merge tag 'afs-fixes-20171124' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
Pull AFS fixes from David Howells:
- Make AFS file locking work again.
- Don't write to a page that's being written out, but wait for it to
complete.
- Do d_drop() and d_add() in the right places.
- Put keys on error paths.
- Remove some redundant code.
* tag 'afs-fixes-20171124' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
afs: remove redundant assignment of dvnode to itself
afs: cell: Remove unnecessary code in afs_lookup_cell
afs: Fix signal handling in some file ops
afs: Fix some dentry handling in dir ops and missing key_puts
afs: Make afs_write_begin() avoid writing to a page that's being stored
afs: Fix file locking
Diffstat (limited to 'fs/afs/write.c')
-rw-r--r-- | fs/afs/write.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/afs/write.c b/fs/afs/write.c index 18e46e31523c..cb5f8a3df577 100644 --- a/fs/afs/write.c +++ b/fs/afs/write.c @@ -119,6 +119,11 @@ try_again: } if (f != t) { + if (PageWriteback(page)) { + trace_afs_page_dirty(vnode, tracepoint_string("alrdy"), + page->index, priv); + goto flush_conflicting_write; + } if (to < f || from > t) goto flush_conflicting_write; if (from < f) |