lkml.org 
[lkml]   [2003]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [NFS] [PATCH] mmap corruption
From
>>>>> " " == Steve Dickson <SteveD@RedHat.com> writes:

> filemap_fdatasync(inode->i_mapping);
> error = nfs_wb_all(inode);
> filemap_fdatawait(inode->i_mapping);
> if (error)
> goto out;

> /*
> * Every time either npages or ncommit had a value and the file
> size is
> * immediately changed (with in a microsecond or two) by another
> * truncation, followed by a mmap read, the file would be
> corrupted.
> */
> if (NFS_I(inode)->npages || NFS_I(inode)->ncommit ||
> NFS_I(inode)->ndirty) {
> printk("nfs_notify_change: fid %Ld npages %d ncommit
> %d ndirty %d\n", NFS_FILEID(inode),
> NFS_I(inode)->npages, ncommit, NFS_I(inode)->ndirty);
> }
> }

My point is that nfs_wb_all() is supposed to ensure that
NFS_I(inode)->ncommit, and/or NFS_I(inode)->ndirty are both
zero. i.e. you can have pending reads (in which case
NFS_I(inode)->npages != 0), but *no* pending writes.

Was this the case?

Cheers,
Trond
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:34    [W:0.180 / U:0.632 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site