diff --git a/fs/afs/write.c b/fs/afs/write.c index 18e46e31523ccc..cb5f8a3df5773c 100644 --- a/fs/afs/write.c +++ b/fs/afs/write.c @@ -119,6 +119,11 @@ int afs_write_begin(struct file *file, struct address_space *mapping, } 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)