<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/nfs/write.c, branch linux-2.6.28.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-10-07T22:19:05Z</updated>
<entry>
<title>NFS: Don't use range_cyclic for data integrity syncs</title>
<updated>2008-10-07T22:19:05Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2008-10-07T00:08:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d7fb120774f062ce7db439863ab5d4190d6f989c'/>
<id>urn:sha1:d7fb120774f062ce7db439863ab5d4190d6f989c</id>
<content type='text'>
It is more efficient to write linearly starting from the beginning of the
file.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Remove BKL requirement from attribute updates</title>
<updated>2008-07-15T22:10:51Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2008-06-11T16:21:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a3d01454bc58b5a211ef64a7670572a40b71e682'/>
<id>urn:sha1:a3d01454bc58b5a211ef64a7670572a40b71e682</id>
<content type='text'>
The main problem is dealing with inode-&gt;i_size: we need to set the
inode-&gt;i_lock on all attribute updates, and so vmtruncate won't cut it.
Make an NFS-private version of vmtruncate that has the necessary locking
semantics.

The result should be that the following inode attribute updates are
protected by inode-&gt;i_lock
	nfsi-&gt;cache_validity
	nfsi-&gt;read_cache_jiffies
	nfsi-&gt;attrtimeo
	nfsi-&gt;attrtimeo_timestamp
	nfsi-&gt;change_attr
	nfsi-&gt;last_updated
	nfsi-&gt;cache_change_attribute
	nfsi-&gt;access_cache
	nfsi-&gt;access_cache_entry_lru
	nfsi-&gt;access_cache_inode_lru
	nfsi-&gt;acl_access
	nfsi-&gt;acl_default
	nfsi-&gt;nfs_page_tree
	nfsi-&gt;ncommit
	nfsi-&gt;npages
	nfsi-&gt;open_files
	nfsi-&gt;silly_list
	nfsi-&gt;acl
	nfsi-&gt;open_states
	inode-&gt;i_size
	inode-&gt;i_atime
	inode-&gt;i_mtime
	inode-&gt;i_ctime
	inode-&gt;i_nlink
	inode-&gt;i_uid
	inode-&gt;i_gid

The following is protected by dir-&gt;i_mutex
	nfsi-&gt;cookieverf

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Allow redirtying of a completed unstable write.</title>
<updated>2008-07-09T16:09:24Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2008-06-13T17:25:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e468bae97d243fe0e1515abaa1f7d0edf1476ad0'/>
<id>urn:sha1:e468bae97d243fe0e1515abaa1f7d0edf1476ad0</id>
<content type='text'>
Currently, if an unstable write completes, we cannot redirty the page in
order to reflect a new change in the page data until after we've sent a
COMMIT request.

This patch allows a page rewrite to proceed without the unnecessary COMMIT
step, putting it immediately back onto the dirty page list, undoing the
VM unstable write accounting, and removing the NFS_PAGE_TAG_COMMIT tag from
the NFS radix tree.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Clean up nfs_update_request()</title>
<updated>2008-07-09T16:09:23Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2008-06-13T16:12:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e7d39069e387a12d4c57f4067d9f48c1d29ea900'/>
<id>urn:sha1:e7d39069e387a12d4c57f4067d9f48c1d29ea900</id>
<content type='text'>
Simplify the loop in nfs_update_request by moving into a separate function
the code that attempts to update an existing cached NFS write.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Fix trace debugging nits in write.c</title>
<updated>2008-07-09T16:09:05Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2008-06-11T21:56:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=48186c7d5734a6b137f9186b37f6dc98097d0429'/>
<id>urn:sha1:48186c7d5734a6b137f9186b37f6dc98097d0429</id>
<content type='text'>
Clean up: fix a few dprintk messages that still need to show the RPC task ID
correctly, and be sure we use the preferred %lld or %llu instead of %Ld or
%Lu.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Revert commit 44dd151d</title>
<updated>2008-07-09T16:08:46Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2008-05-25T16:59:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7e5f6146609eb9134fac7d1b6bfee43df1732188'/>
<id>urn:sha1:7e5f6146609eb9134fac7d1b6bfee43df1732188</id>
<content type='text'>
Revert commit 44dd151d "NFS: Don't mark a written page as uptodate until it
is on disk". While it is true that the write may fail, that is always the
case. There is no reason why we should treat data on pages that are not
already marked as PG_uptodate as being special. The only thing we gain is a
noticeable slowdown when re-reading these pages.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Optimise append writes with holes</title>
<updated>2008-07-09T16:08:45Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2008-06-10T22:31:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=efc91ed0191e3fc62bb1c556ac93fc4e661214d2'/>
<id>urn:sha1:efc91ed0191e3fc62bb1c556ac93fc4e661214d2</id>
<content type='text'>
If a file is being extended, and we're creating a hole, we might as well
declare the entire page to be up to date.

This patch significantly improves the write performance for sparse files
in the case where lseek(SEEK_END) is used to append several non-contiguous
writes at intervals of &lt; PAGE_SIZE.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Fix a preemption count leak in nfs_update_request</title>
<updated>2008-07-09T16:08:39Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2008-06-05T19:17:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f3d47a3a6a1484a93c8cfe1e8c8d4399c95199c7'/>
<id>urn:sha1:f3d47a3a6a1484a93c8cfe1e8c8d4399c95199c7</id>
<content type='text'>
The commit 2785259631697ebb0749a3782cca206e2e542939 (nfs: use GFP_NOFS
preloads for radix-tree insertion) appears to have introduced a bug:
We only want to call radix_tree_preload() once after creating a request.
Calling it every time we loop after we created the request, will cause
preemption count leaks.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Cc: Nick Piggin &lt;npiggin@suse.de&gt;
</content>
</entry>
<entry>
<title>NFS: nfs_updatepage(): don't mark page as dirty if an error occurred</title>
<updated>2008-06-23T21:09:07Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2008-06-05T20:02:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=03fa9e84e5dc10aeacb0e4eb2f708cd9fc36a5b8'/>
<id>urn:sha1:03fa9e84e5dc10aeacb0e4eb2f708cd9fc36a5b8</id>
<content type='text'>
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>nfs: fix race in nfs_dirty_request</title>
<updated>2008-05-16T16:43:23Z</updated>
<author>
<name>Fred Isaman</name>
</author>
<published>2008-05-01T17:03:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=38def50fabc479dc96ea6bd2cb2526e0dfc36fa4'/>
<id>urn:sha1:38def50fabc479dc96ea6bd2cb2526e0dfc36fa4</id>
<content type='text'>
When called from nfs_flush_incompatible, the req is not locked, so
req-&gt;wb_page might be set to NULL before it is used by PageWriteback.

Signed-off-by: Fred Isaman &lt;iisaman@citi.umich.edu&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@panasas.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
</feed>
