linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] nfsd: Fix build error
@ 2020-03-04 13:18 YueHaibing
  2020-03-04 18:00 ` Chuck Lever
  0 siblings, 1 reply; 7+ messages in thread
From: YueHaibing @ 2020-03-04 13:18 UTC (permalink / raw)
  To: bfields, chuck.lever, kolga; +Cc: linux-nfs, linux-kernel, YueHaibing

fs/nfsd/nfs4proc.o: In function `nfsd4_do_copy':
nfs4proc.c:(.text+0x23b7): undefined reference to `nfs42_ssc_close'
fs/nfsd/nfs4proc.o: In function `nfsd4_copy':
nfs4proc.c:(.text+0x5d2a): undefined reference to `nfs_sb_deactive'
fs/nfsd/nfs4proc.o: In function `nfsd4_do_async_copy':
nfs4proc.c:(.text+0x61d5): undefined reference to `nfs42_ssc_open'
nfs4proc.c:(.text+0x6389): undefined reference to `nfs_sb_deactive'

Add dependency to NFSD_V4_2_INTER_SSC to fix this.

Fixes: ce0887ac96d3 ("NFSD add nfs4 inter ssc to nfsd4_copy")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
---
 fs/nfsd/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
index f368f32..fc587a5 100644
--- a/fs/nfsd/Kconfig
+++ b/fs/nfsd/Kconfig
@@ -136,6 +136,7 @@ config NFSD_FLEXFILELAYOUT
 
 config NFSD_V4_2_INTER_SSC
 	bool "NFSv4.2 inter server to server COPY"
+	depends on !(NFSD=y && NFS_FS=m)
 	depends on NFSD_V4 && NFS_V4_1 && NFS_V4_2
 	help
 	  This option enables support for NFSv4.2 inter server to
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] nfsd: Fix build error
  2020-03-04 13:18 [PATCH] nfsd: Fix build error YueHaibing
@ 2020-03-04 18:00 ` Chuck Lever
  2020-03-04 20:06   ` Bruce Fields
  0 siblings, 1 reply; 7+ messages in thread
From: Chuck Lever @ 2020-03-04 18:00 UTC (permalink / raw)
  To: YueHaibing
  Cc: Bruce Fields, Olga Kornievskaia, Linux NFS Mailing List, linux-kernel

Hi-

> On Mar 4, 2020, at 8:18 AM, YueHaibing <yuehaibing@huawei.com> wrote:
> 
> fs/nfsd/nfs4proc.o: In function `nfsd4_do_copy':
> nfs4proc.c:(.text+0x23b7): undefined reference to `nfs42_ssc_close'
> fs/nfsd/nfs4proc.o: In function `nfsd4_copy':
> nfs4proc.c:(.text+0x5d2a): undefined reference to `nfs_sb_deactive'
> fs/nfsd/nfs4proc.o: In function `nfsd4_do_async_copy':
> nfs4proc.c:(.text+0x61d5): undefined reference to `nfs42_ssc_open'
> nfs4proc.c:(.text+0x6389): undefined reference to `nfs_sb_deactive'
> 
> Add dependency to NFSD_V4_2_INTER_SSC to fix this.
> 
> Fixes: ce0887ac96d3 ("NFSD add nfs4 inter ssc to nfsd4_copy")
> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> ---
> fs/nfsd/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
> 
> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
> index f368f32..fc587a5 100644
> --- a/fs/nfsd/Kconfig
> +++ b/fs/nfsd/Kconfig
> @@ -136,6 +136,7 @@ config NFSD_FLEXFILELAYOUT
> 
> config NFSD_V4_2_INTER_SSC
> 	bool "NFSv4.2 inter server to server COPY"
> +	depends on !(NFSD=y && NFS_FS=m)

The new dependency is not especially clear to me; more explanation
in the patch description about the cause of the build failure
would definitely be helpful.

NFSD_V4 can't be set unless NFSD is also set.

NFS_V4_2 can't be set unless NFS_V4_1 is also set, and that cannot
be set unless NFS_FS is also set.

So what's really going on here?


> 	depends on NFSD_V4 && NFS_V4_1 && NFS_V4_2
> 	help
> 	  This option enables support for NFSv4.2 inter server to
> -- 
> 2.7.4
> 
> 

--
Chuck Lever




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] nfsd: Fix build error
  2020-03-04 18:00 ` Chuck Lever
@ 2020-03-04 20:06   ` Bruce Fields
  2020-03-04 21:05     ` Chuck Lever
  2020-03-05  3:46     ` Yuehaibing
  0 siblings, 2 replies; 7+ messages in thread
From: Bruce Fields @ 2020-03-04 20:06 UTC (permalink / raw)
  To: Chuck Lever
  Cc: YueHaibing, Olga Kornievskaia, Linux NFS Mailing List, linux-kernel

On Wed, Mar 04, 2020 at 01:00:12PM -0500, Chuck Lever wrote:
> Hi-
> 
> > On Mar 4, 2020, at 8:18 AM, YueHaibing <yuehaibing@huawei.com> wrote:
> > 
> > fs/nfsd/nfs4proc.o: In function `nfsd4_do_copy':
> > nfs4proc.c:(.text+0x23b7): undefined reference to `nfs42_ssc_close'
> > fs/nfsd/nfs4proc.o: In function `nfsd4_copy':
> > nfs4proc.c:(.text+0x5d2a): undefined reference to `nfs_sb_deactive'
> > fs/nfsd/nfs4proc.o: In function `nfsd4_do_async_copy':
> > nfs4proc.c:(.text+0x61d5): undefined reference to `nfs42_ssc_open'
> > nfs4proc.c:(.text+0x6389): undefined reference to `nfs_sb_deactive'
> > 
> > Add dependency to NFSD_V4_2_INTER_SSC to fix this.
> > 
> > Fixes: ce0887ac96d3 ("NFSD add nfs4 inter ssc to nfsd4_copy")
> > Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> > ---
> > fs/nfsd/Kconfig | 1 +
> > 1 file changed, 1 insertion(+)
> > 
> > diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
> > index f368f32..fc587a5 100644
> > --- a/fs/nfsd/Kconfig
> > +++ b/fs/nfsd/Kconfig
> > @@ -136,6 +136,7 @@ config NFSD_FLEXFILELAYOUT
> > 
> > config NFSD_V4_2_INTER_SSC
> > 	bool "NFSv4.2 inter server to server COPY"
> > +	depends on !(NFSD=y && NFS_FS=m)
> 
> The new dependency is not especially clear to me; more explanation
> in the patch description about the cause of the build failure
> would definitely be helpful.
> 
> NFSD_V4 can't be set unless NFSD is also set.
> 
> NFS_V4_2 can't be set unless NFS_V4_1 is also set, and that cannot
> be set unless NFS_FS is also set.
> 
> So what's really going on here?

I don't understand that "depends" either.

The fundamental problem, though, is that nfsd is calling nfs code
directly.

Which I noticed in earlier review and then forgot to follow up on,
sorry.

So either we:

	- let nfsd depend on nfs, fix up Kconfig to reflect the fact, or
	- write some code so nfsd can load nfs and find those symbols at
	  runtime if it needs to do a copy.

The latter's certainly doable, but it'd be simplest to do the former.
Are there actually a lot of people who want nfsd but not nfs?  Does that
cause a real problem for anyone?

--b.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] nfsd: Fix build error
  2020-03-04 20:06   ` Bruce Fields
@ 2020-03-04 21:05     ` Chuck Lever
  2020-03-04 21:20       ` Kornievskaia, Olga
  2020-03-05  3:46     ` Yuehaibing
  1 sibling, 1 reply; 7+ messages in thread
From: Chuck Lever @ 2020-03-04 21:05 UTC (permalink / raw)
  To: Bruce Fields
  Cc: YueHaibing, Olga Kornievskaia, Linux NFS Mailing List, linux-kernel



> On Mar 4, 2020, at 3:06 PM, Bruce Fields <bfields@fieldses.org> wrote:
> 
> On Wed, Mar 04, 2020 at 01:00:12PM -0500, Chuck Lever wrote:
>> Hi-
>> 
>>> On Mar 4, 2020, at 8:18 AM, YueHaibing <yuehaibing@huawei.com> wrote:
>>> 
>>> fs/nfsd/nfs4proc.o: In function `nfsd4_do_copy':
>>> nfs4proc.c:(.text+0x23b7): undefined reference to `nfs42_ssc_close'
>>> fs/nfsd/nfs4proc.o: In function `nfsd4_copy':
>>> nfs4proc.c:(.text+0x5d2a): undefined reference to `nfs_sb_deactive'
>>> fs/nfsd/nfs4proc.o: In function `nfsd4_do_async_copy':
>>> nfs4proc.c:(.text+0x61d5): undefined reference to `nfs42_ssc_open'
>>> nfs4proc.c:(.text+0x6389): undefined reference to `nfs_sb_deactive'
>>> 
>>> Add dependency to NFSD_V4_2_INTER_SSC to fix this.
>>> 
>>> Fixes: ce0887ac96d3 ("NFSD add nfs4 inter ssc to nfsd4_copy")
>>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
>>> ---
>>> fs/nfsd/Kconfig | 1 +
>>> 1 file changed, 1 insertion(+)
>>> 
>>> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
>>> index f368f32..fc587a5 100644
>>> --- a/fs/nfsd/Kconfig
>>> +++ b/fs/nfsd/Kconfig
>>> @@ -136,6 +136,7 @@ config NFSD_FLEXFILELAYOUT
>>> 
>>> config NFSD_V4_2_INTER_SSC
>>> 	bool "NFSv4.2 inter server to server COPY"
>>> +	depends on !(NFSD=y && NFS_FS=m)
>> 
>> The new dependency is not especially clear to me; more explanation
>> in the patch description about the cause of the build failure
>> would definitely be helpful.
>> 
>> NFSD_V4 can't be set unless NFSD is also set.
>> 
>> NFS_V4_2 can't be set unless NFS_V4_1 is also set, and that cannot
>> be set unless NFS_FS is also set.
>> 
>> So what's really going on here?
> 
> I don't understand that "depends" either.
> 
> The fundamental problem, though, is that nfsd is calling nfs code
> directly.
> 
> Which I noticed in earlier review and then forgot to follow up on,
> sorry.
> 
> So either we:
> 
> 	- let nfsd depend on nfs, fix up Kconfig to reflect the fact, or
> 	- write some code so nfsd can load nfs and find those symbols at
> 	  runtime if it needs to do a copy.

Another practical option would be to create a copy of these functions in
the server's SSC code. At least nfs_sb_deactive() is not large.

Not clear if nfs42_ssc_open/close are even used on the client. Maybe they
could be moved to the server?

> The latter's certainly doable, but it'd be simplest to do the former.
> Are there actually a lot of people who want nfsd but not nfs?  Does that
> cause a real problem for anyone?
> 
> --b.

--
Chuck Lever




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] nfsd: Fix build error
  2020-03-04 21:05     ` Chuck Lever
@ 2020-03-04 21:20       ` Kornievskaia, Olga
  0 siblings, 0 replies; 7+ messages in thread
From: Kornievskaia, Olga @ 2020-03-04 21:20 UTC (permalink / raw)
  To: Chuck Lever, Bruce Fields
  Cc: YueHaibing, Linux NFS Mailing List, linux-kernel



On 3/4/20, 4:05 PM, "Chuck Lever" <chuck.lever@oracle.com> wrote:

    NetApp Security WARNING: This is an external email. Do not click links or open attachments unless you recognize the sender and know the content is safe.
    
    
    
    
    > On Mar 4, 2020, at 3:06 PM, Bruce Fields <bfields@fieldses.org> wrote:
    >
    > On Wed, Mar 04, 2020 at 01:00:12PM -0500, Chuck Lever wrote:
    >> Hi-
    >>
    >>> On Mar 4, 2020, at 8:18 AM, YueHaibing <yuehaibing@huawei.com> wrote:
    >>>
    >>> fs/nfsd/nfs4proc.o: In function `nfsd4_do_copy':
    >>> nfs4proc.c:(.text+0x23b7): undefined reference to `nfs42_ssc_close'
    >>> fs/nfsd/nfs4proc.o: In function `nfsd4_copy':
    >>> nfs4proc.c:(.text+0x5d2a): undefined reference to `nfs_sb_deactive'
    >>> fs/nfsd/nfs4proc.o: In function `nfsd4_do_async_copy':
    >>> nfs4proc.c:(.text+0x61d5): undefined reference to `nfs42_ssc_open'
    >>> nfs4proc.c:(.text+0x6389): undefined reference to `nfs_sb_deactive'
    >>>
    >>> Add dependency to NFSD_V4_2_INTER_SSC to fix this.
    >>>
    >>> Fixes: ce0887ac96d3 ("NFSD add nfs4 inter ssc to nfsd4_copy")
    >>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    >>> ---
    >>> fs/nfsd/Kconfig | 1 +
    >>> 1 file changed, 1 insertion(+)
    >>>
    >>> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
    >>> index f368f32..fc587a5 100644
    >>> --- a/fs/nfsd/Kconfig
    >>> +++ b/fs/nfsd/Kconfig
    >>> @@ -136,6 +136,7 @@ config NFSD_FLEXFILELAYOUT
    >>>
    >>> config NFSD_V4_2_INTER_SSC
    >>>     bool "NFSv4.2 inter server to server COPY"
    >>> +   depends on !(NFSD=y && NFS_FS=m)
    >>
    >> The new dependency is not especially clear to me; more explanation
    >> in the patch description about the cause of the build failure
    >> would definitely be helpful.
    >>
    >> NFSD_V4 can't be set unless NFSD is also set.
    >>
    >> NFS_V4_2 can't be set unless NFS_V4_1 is also set, and that cannot
    >> be set unless NFS_FS is also set.
    >>
    >> So what's really going on here?
    >
    > I don't understand that "depends" either.
    >
    > The fundamental problem, though, is that nfsd is calling nfs code
    > directly.
    >
    > Which I noticed in earlier review and then forgot to follow up on,
    > sorry.
    >
    > So either we:
    >
    >       - let nfsd depend on nfs, fix up Kconfig to reflect the fact, or
    >       - write some code so nfsd can load nfs and find those symbols at
    >         runtime if it needs to do a copy.
    
    Another practical option would be to create a copy of these functions in
    the server's SSC code. At least nfs_sb_deactive() is not large.
    
    Not clear if nfs42_ssc_open/close are even used on the client. Maybe they
    could be moved to the server?

Nfs42_ssc_open/close are not used on the client but their insides use client's structures (like nfs_fh, nfs4_stateid, etc) and calls nfs4_proc_getattr, nfs_fhget and others and VFS functions. It'll be a lot to copy. 
    
    > The latter's certainly doable, but it'd be simplest to do the former.
    > Are there actually a lot of people who want nfsd but not nfs?  Does that
    > cause a real problem for anyone?
    >
    > --b.
    
    --
    Chuck Lever
    
    
    
    


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] nfsd: Fix build error
  2020-03-04 20:06   ` Bruce Fields
  2020-03-04 21:05     ` Chuck Lever
@ 2020-03-05  3:46     ` Yuehaibing
  2020-03-05 15:15       ` Chuck Lever
  1 sibling, 1 reply; 7+ messages in thread
From: Yuehaibing @ 2020-03-05  3:46 UTC (permalink / raw)
  To: Bruce Fields, Chuck Lever
  Cc: Olga Kornievskaia, Linux NFS Mailing List, linux-kernel

On 2020/3/5 4:06, Bruce Fields wrote:
> On Wed, Mar 04, 2020 at 01:00:12PM -0500, Chuck Lever wrote:
>> Hi-
>>
>>> On Mar 4, 2020, at 8:18 AM, YueHaibing <yuehaibing@huawei.com> wrote:
>>>
>>> fs/nfsd/nfs4proc.o: In function `nfsd4_do_copy':
>>> nfs4proc.c:(.text+0x23b7): undefined reference to `nfs42_ssc_close'
>>> fs/nfsd/nfs4proc.o: In function `nfsd4_copy':
>>> nfs4proc.c:(.text+0x5d2a): undefined reference to `nfs_sb_deactive'
>>> fs/nfsd/nfs4proc.o: In function `nfsd4_do_async_copy':
>>> nfs4proc.c:(.text+0x61d5): undefined reference to `nfs42_ssc_open'
>>> nfs4proc.c:(.text+0x6389): undefined reference to `nfs_sb_deactive'
>>>
>>> Add dependency to NFSD_V4_2_INTER_SSC to fix this.
>>>
>>> Fixes: ce0887ac96d3 ("NFSD add nfs4 inter ssc to nfsd4_copy")
>>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
>>> ---
>>> fs/nfsd/Kconfig | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
>>> index f368f32..fc587a5 100644
>>> --- a/fs/nfsd/Kconfig
>>> +++ b/fs/nfsd/Kconfig
>>> @@ -136,6 +136,7 @@ config NFSD_FLEXFILELAYOUT
>>>
>>> config NFSD_V4_2_INTER_SSC
>>> 	bool "NFSv4.2 inter server to server COPY"
>>> +	depends on !(NFSD=y && NFS_FS=m)
>>
>> The new dependency is not especially clear to me; more explanation
>> in the patch description about the cause of the build failure
>> would definitely be helpful.
>>
>> NFSD_V4 can't be set unless NFSD is also set.
>>
>> NFS_V4_2 can't be set unless NFS_V4_1 is also set, and that cannot
>> be set unless NFS_FS is also set.
>>
>> So what's really going on here?
> 
> I don't understand that "depends" either.
> 
> The fundamental problem, though, is that nfsd is calling nfs code
> directly.

Yes

> 
> Which I noticed in earlier review and then forgot to follow up on,
> sorry.
> 
> So either we:
> 
> 	- let nfsd depend on nfs, fix up Kconfig to reflect the fact, or

It only fails while NFSD=y && NFS_FS=m, other cases works fine as Chuck Lever pointed.

> 	- write some code so nfsd can load nfs and find those symbols at
> 	  runtime if it needs to do a copy.
> 
> The latter's certainly doable, but it'd be simplest to do the former.
> Are there actually a lot of people who want nfsd but not nfs?  Does that
> cause a real problem for anyone?
> 
> --b.
> 
> .
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] nfsd: Fix build error
  2020-03-05  3:46     ` Yuehaibing
@ 2020-03-05 15:15       ` Chuck Lever
  0 siblings, 0 replies; 7+ messages in thread
From: Chuck Lever @ 2020-03-05 15:15 UTC (permalink / raw)
  To: Yuehaibing, Bruce Fields, Olga Kornievskaia
  Cc: Linux NFS Mailing List, Linux Kernel Mailing List



> On Mar 4, 2020, at 10:46 PM, Yuehaibing <yuehaibing@huawei.com> wrote:
> 
> On 2020/3/5 4:06, Bruce Fields wrote:
>> On Wed, Mar 04, 2020 at 01:00:12PM -0500, Chuck Lever wrote:
>>> Hi-
>>> 
>>>> On Mar 4, 2020, at 8:18 AM, YueHaibing <yuehaibing@huawei.com> wrote:
>>>> 
>>>> fs/nfsd/nfs4proc.o: In function `nfsd4_do_copy':
>>>> nfs4proc.c:(.text+0x23b7): undefined reference to `nfs42_ssc_close'
>>>> fs/nfsd/nfs4proc.o: In function `nfsd4_copy':
>>>> nfs4proc.c:(.text+0x5d2a): undefined reference to `nfs_sb_deactive'
>>>> fs/nfsd/nfs4proc.o: In function `nfsd4_do_async_copy':
>>>> nfs4proc.c:(.text+0x61d5): undefined reference to `nfs42_ssc_open'
>>>> nfs4proc.c:(.text+0x6389): undefined reference to `nfs_sb_deactive'
>>>> 
>>>> Add dependency to NFSD_V4_2_INTER_SSC to fix this.
>>>> 
>>>> Fixes: ce0887ac96d3 ("NFSD add nfs4 inter ssc to nfsd4_copy")
>>>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
>>>> ---
>>>> fs/nfsd/Kconfig | 1 +
>>>> 1 file changed, 1 insertion(+)
>>>> 
>>>> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
>>>> index f368f32..fc587a5 100644
>>>> --- a/fs/nfsd/Kconfig
>>>> +++ b/fs/nfsd/Kconfig
>>>> @@ -136,6 +136,7 @@ config NFSD_FLEXFILELAYOUT
>>>> 
>>>> config NFSD_V4_2_INTER_SSC
>>>> 	bool "NFSv4.2 inter server to server COPY"
>>>> +	depends on !(NFSD=y && NFS_FS=m)
>>> 
>>> The new dependency is not especially clear to me; more explanation
>>> in the patch description about the cause of the build failure
>>> would definitely be helpful.
>>> 
>>> NFSD_V4 can't be set unless NFSD is also set.
>>> 
>>> NFS_V4_2 can't be set unless NFS_V4_1 is also set, and that cannot
>>> be set unless NFS_FS is also set.
>>> 
>>> So what's really going on here?
>> 
>> I don't understand that "depends" either.
>> 
>> The fundamental problem, though, is that nfsd is calling nfs code
>> directly.
> 
> Yes
> 
>> 
>> Which I noticed in earlier review and then forgot to follow up on,
>> sorry.
>> 
>> So either we:
>> 
>> 	- let nfsd depend on nfs, fix up Kconfig to reflect the fact, or
> 
> It only fails while NFSD=y && NFS_FS=m, other cases works fine as Chuck Lever pointed.

TL;DR - we probably need both of Bruce's options, IMO.

IIUC current distributions have the NFS client and server built as
separate modules. On an NFS server, most of the time there would be
no NFS mounts, thus the NFS client module is unlikely to be in memory
when an inter-SSC type request arrives.

Stated differently, enabling SSC cannot break the kernel build when
the client is built as a module. So we need NFS_FS=m to work because
it is the most common configuration.

If creating that fix will take longer than the next merge window, it
would be good practice IMO if some kind of Kconfig dependency were
introduced now to prevent SSC from being enabled when NFS_FS=m. Someone
with better Kconfig fu than me should have a look at Yue's proposed
patch. Once the long term solution is ready, this temporary fix can
be reverted.


>> 	- write some code so nfsd can load nfs and find those symbols at
>> 	  runtime if it needs to do a copy.
>> 
>> The latter's certainly doable, but it'd be simplest to do the former.
>> Are there actually a lot of people who want nfsd but not nfs?  Does that
>> cause a real problem for anyone?
>> 
>> --b.

--
Chuck Lever




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-03-05 15:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-04 13:18 [PATCH] nfsd: Fix build error YueHaibing
2020-03-04 18:00 ` Chuck Lever
2020-03-04 20:06   ` Bruce Fields
2020-03-04 21:05     ` Chuck Lever
2020-03-04 21:20       ` Kornievskaia, Olga
2020-03-05  3:46     ` Yuehaibing
2020-03-05 15:15       ` Chuck Lever

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).