On Tue, 2012-12-11 at 18:16 -0500, Trond Myklebust wrote: > Hmm... I can see 2 places where we're setting the PageError flag. > > 1. nfs_updatepage(): in this case, the error occurred when we tried > to change the page contents. Since we're holding the page lock, > and so rather than mark the page as bad, we could probably just > write back existing dirty areas (using nfs_wb_page()) and then > remove it from the mapping. > 2. nfs_write_completion(): here the writeback error applies to the > entire dirty area on the page, and there is no point in try to > write back again. Better just evict the page from the page cache > (which is what nfs_zap_mapping() is supposed to do). While > setting the PageError flag does cause some of the writeback > functions to return EIO, that's not really what we're after; we > already report errors more completely via the open context. > > So for now, can't we just change nfs_set_pageerror() to not bother > setting the PG_error flag? Then in the future we might want to make > nfs_updatepage a bit more sophisticated in how it deals with those > errors... Ultimately, what I'm saying is that PageError is a hack for passing errors around. Since we have our own hack for doing the same, then why use PageError at all? -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@xxxxxxxxxx www.netapp.com ��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥