diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-05 16:05:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-05 16:05:15 -0400 |
commit | a942b57b9577f30da46a9f16ea0ef2c372cb15a4 (patch) | |
tree | e62017f1b154dc1ffe0c2a95fc654fb16e98fe5c /net | |
parent | 887e5d5fcc96e3a7c91e19d9bb419c10196ffdc1 (diff) | |
parent | 72dbac37e3a0acf8e8f07fc65e34e83de83e0b28 (diff) |
Merge git://git.linux-nfs.org/pub/linux/nfs-2.6
* git://git.linux-nfs.org/pub/linux/nfs-2.6:
NLM,NFSv4: Wait on local locks before we put RPC calls on the wire
VFS: Add support for the FL_ACCESS flag to flock_lock_file()
NFSv4: Ensure nfs4_lock_expired() caches delegated locks
NLM,NFSv4: Don't put UNLOCK requests on the wire unless we hold a lock
VFS: Allow caller to determine if BSD or posix locks were actually freed
NFS: Optimise away an excessive GETATTR call when a file is symlinked
This fixes a panic doing the first READDIR or READDIRPLUS call when:
NFS: Fix NFS page_state usage
Revert "Merge branch 'odirect'"
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/xdr.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c index 49174f0d0a3e..6ac45103a272 100644 --- a/net/sunrpc/xdr.c +++ b/net/sunrpc/xdr.c | |||
@@ -191,7 +191,6 @@ _shift_data_right_pages(struct page **pages, size_t pgto_base, | |||
191 | do { | 191 | do { |
192 | /* Are any pointers crossing a page boundary? */ | 192 | /* Are any pointers crossing a page boundary? */ |
193 | if (pgto_base == 0) { | 193 | if (pgto_base == 0) { |
194 | flush_dcache_page(*pgto); | ||
195 | pgto_base = PAGE_CACHE_SIZE; | 194 | pgto_base = PAGE_CACHE_SIZE; |
196 | pgto--; | 195 | pgto--; |
197 | } | 196 | } |
@@ -211,11 +210,11 @@ _shift_data_right_pages(struct page **pages, size_t pgto_base, | |||
211 | vto = kmap_atomic(*pgto, KM_USER0); | 210 | vto = kmap_atomic(*pgto, KM_USER0); |
212 | vfrom = kmap_atomic(*pgfrom, KM_USER1); | 211 | vfrom = kmap_atomic(*pgfrom, KM_USER1); |
213 | memmove(vto + pgto_base, vfrom + pgfrom_base, copy); | 212 | memmove(vto + pgto_base, vfrom + pgfrom_base, copy); |
213 | flush_dcache_page(*pgto); | ||
214 | kunmap_atomic(vfrom, KM_USER1); | 214 | kunmap_atomic(vfrom, KM_USER1); |
215 | kunmap_atomic(vto, KM_USER0); | 215 | kunmap_atomic(vto, KM_USER0); |
216 | 216 | ||
217 | } while ((len -= copy) != 0); | 217 | } while ((len -= copy) != 0); |
218 | flush_dcache_page(*pgto); | ||
219 | } | 218 | } |
220 | 219 | ||
221 | /* | 220 | /* |