Re: NFS regression - EIO is returned instead of ENOSPC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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�����٥



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux