Bug 27709 - critical nfs update
critical nfs update
Status: CLOSED RAWHIDE
Product: Red Hat Linux
Classification: Retired
Component: kernel (Show other bugs)
7.1
All Linux
high Severity high
: ---
: ---
Assigned To: Arjan van de Ven
Brock Organ
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2001-02-14 23:54 EST by Seth Vidal
Modified: 2005-10-31 17:00 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2001-02-15 11:59:15 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Seth Vidal 2001-02-14 23:54:19 EST
The update listed here:


> From: Neil Brown 
> Linus,
>  Please consider this for inclusion in 2.4.2
> 
>  The nfsd reply cache is currently not properly distinguishing between
>  different clients.  This is because rqstr->rq_addrlen is not being
>  set by net/sunrpc (atleast, not for udp).
> 
>  A better fix might be to make sure it is set properly, but a lot of
>  the code currently has hardcoded knowledge that AT_INET is the only
>  protocol in use, so hardcoding the address length in the memcmp seem
>  acceptable, for now at least.
> 
>  Without this fix, heavy nfs traffic from a large number of clients
>  can cause file corruption as some write requests get incorrectly
>  served from the cache instead of actually sending data to disk
> 
> NeilBrown
> 
> --- ./fs/nfsd/nfscache.c      2001/02/15 01:15:20     1.1
> +++ ./fs/nfsd/nfscache.c      2001/02/15 01:19:49     1.2
> @@ -192,7 +192,7 @@
>                   xid == rp->c_xid && proc == rp->c_proc &&
>                   proto == rp->c_prot && vers == rp->c_vers &&
>                   time_before(jiffies, rp->c_timestamp + 120*HZ) &&
> -                 memcmp((char*)&rqstp->rq_addr, (char*)&rp->c_addr,
rqstp->rq_addrlen)==0) {
> +                 memcmp((char*)&rqstp->rq_addr, (char*)&rp->c_addr,
sizeof(rp->c_addr))==0) {
>                       nfsdstats.rchits++;
>                       goto found_entry;
>               }
> 


The email say it all.

-sv
Comment 1 Arjan van de Ven 2001-02-15 12:09:34 EST
Patch will be in the next kernel build.

Note You need to log in before you can comment on or make changes to this bug.