Don't return AOP_WRITEPAGE_ACTIVATE to write()
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Fri, 23 Oct 2009 15:34:33 +0000 (16:34 +0100)
committerDerrick Brashear <shadow|account-1000005@unknown>
Sun, 25 Oct 2009 00:19:38 +0000 (17:19 -0700)
commitb8e4c573a5da18ecd80578a1061594891528ffc9
treed66509dc3d54549b0a7cc6a651340d7828bde539
parent70c8deab1694e2cd200f4ff7a81f5f3f028a4c19
Don't return AOP_WRITEPAGE_ACTIVATE to write()

When we're called from write(), we don't have the option
of deferring the writing of a page by returning AOP_WRITEPAGE_ACTIVATE.
Instead, write() simply sees this as the output of 0x8000 bytes of data.

So, whilst we can mark a vcache as being output, we can't defer the
processing of one which is already being written (by, for example, an
earlier writepage()).

This problem only affects files which are have mmap() and write()
called in quick succession, but it does break the fsx utility.

Change-Id: I750a186de38da9873665a862f5b584a78e6979ad
Reviewed-on: http://gerrit.openafs.org/725
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/afs/LINUX/osi_vnodeops.c