2005-04-13 00:47:17

by Greg Banks

[permalink] [raw]
Subject: Re: O_NONBLOCK for regular files

G'day,

On Sat, 2004-03-20 at 20:24, Greg Banks wrote:
> Jamie Lokier wrote:
> > Christoph Hellwig wrote:
> > > It's used to [...] return EAGAIN to the nfs server so it doesn't block all
> > > nfsd threads on possible long-enduring HSM operations.
> >
> > How does nfsd get notified when the operation is possible?
>
> It doesn't; the nfsd sends an RPC reply containing the NFSERR_JUKEBOX
> error to the NFS client, which sleeps and retries the operation after a
> few seconds. If the operation is not yet possible the cycle repeats.

http://marc.theaimsgroup.com/?l=linux-fsdevel&m=107959907311576&w=2

This thread was started by Christoph Hellwig 13 months ago to discuss
the possibility of using O_NONBLOCK in nfsd to make the combination
of NFS and Hierarchical Storage Managers play nicely together. The
thread petered out with no firm conclusion but no major objections
either.

There's now a patch to actually do it, see

http://marc.theaimsgroup.com/?l=linux-nfs&m=111087383132762&w=2

Does anyone want to give a firm yea or nea to this approach? I'd
really like to get this patch moving in the pipeline.

Greg.
--
Greg Banks, R&D Software Engineer, SGI Australian Software Group.
I don't speak for SGI.




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs


2005-04-13 05:56:30

by Trond Myklebust

[permalink] [raw]
Subject: Re: O_NONBLOCK for regular files

on den 13.04.2005 Klokka 10:45 (+1000) skreiv Greg Banks:

> There's now a patch to actually do it, see
>
> http://marc.theaimsgroup.com/?l=linux-nfs&m=111087383132762&w=2
>
> Does anyone want to give a firm yea or nea to this approach? I'd
> really like to get this patch moving in the pipeline.

Nay...

if (rqstp->rq_vers == 3)

is BAD!

We're already busy with rq_vers == 4 (which has the same issues). This
sort of condition needs to be handled in a more version-independent
manner.

Cheers,
Trond

--
Trond Myklebust <[email protected]>


2005-04-13 06:03:44

by Greg Banks

[permalink] [raw]
Subject: Re: O_NONBLOCK for regular files

On Wed, 2005-04-13 at 15:56, Trond Myklebust wrote:
> on den 13.04.2005 Klokka 10:45 (+1000) skreiv Greg Banks:
>
> > There's now a patch to actually do it, see
> >
> > http://marc.theaimsgroup.com/?l=linux-nfs&m=111087383132762&w=2
> >
> > Does anyone want to give a firm yea or nea to this approach? I'd
> > really like to get this patch moving in the pipeline.
>
> Nay...
>
> if (rqstp->rq_vers == 3)
>
> is BAD!
>
> We're already busy with rq_vers == 4 (which has the same issues). This
> sort of condition needs to be handled in a more version-independent
> manner.

Yes, Neil already made this point. I have a new version of the patch
which does

if (rqstp->rq_vers >= 3)

which I'll resend if there are no other issues. I assume that'll
be good enough.

Any other issues?

Greg.
--
Greg Banks, R&D Software Engineer, SGI Australian Software Group.
I don't speak for SGI.



2005-04-13 06:31:31

by Trond Myklebust

[permalink] [raw]
Subject: Re: O_NONBLOCK for regular files

on den 13.04.2005 Klokka 16:03 (+1000) skreiv Greg Banks:

> Any other issues?
>
> Greg.

Well, I'm sa bit curious as to what "iap->ia_valid |= ATTR_NO_BLOCK"
will do. AFAICS, there is nothing that actually tests for it.

Trond
--
Trond Myklebust <[email protected]>


2005-04-13 07:06:12

by Greg Banks

[permalink] [raw]
Subject: Re: O_NONBLOCK for regular files

On Wed, 2005-04-13 at 16:31, Trond Myklebust wrote:
> on den 13.04.2005 Klokka 16:03 (+1000) skreiv Greg Banks:
>
> > Any other issues?
> >
> > Greg.
>
> Well, I'm sa bit curious as to what "iap->ia_valid |= ATTR_NO_BLOCK"
> will do. AFAICS, there is nothing that actually tests for it.

fs/xfs/linux-2.6/xfs_iops.c:linvfs_setattr() does

535 #ifdef ATTR_NO_BLOCK
536 if ((ia_valid & ATTR_NO_BLOCK))
537 flags |= ATTR_NONBLOCK;
538 #endif

and later ATTR_NONBLOCK is used to change the behaviour of
DMAPI callouts from XFS.

Greg.
--
Greg Banks, R&D Software Engineer, SGI Australian Software Group.
I don't speak for SGI.