<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/nfs/blocklayout/blocklayout.h, branch linux-3.5.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.5.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.5.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-03-11T14:57:35Z</updated>
<entry>
<title>NFS: replace global bl_wq with per-net one</title>
<updated>2012-03-11T14:57:35Z</updated>
<author>
<name>Stanislav Kinsbursky</name>
</author>
<published>2012-03-11T14:20:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5ffaf8554163d9f3873988ce2f9977f6c6f408d2'/>
<id>urn:sha1:5ffaf8554163d9f3873988ce2f9977f6c6f408d2</id>
<content type='text'>
This queue is used for sleeping in kernel and it have to be per-net since we
don't want to wake any other waiters except in out network nemespace.
BTW, move wq to per-net data is easy. But some way to handle upcall timeouts
have to be provided. On message destroy in case of timeout, tasks, waiting for
message to be delivered, should be awakened. Thus, some data required to
located the right wait queue. Chosen solution replaces rpc_pipe_msg object with
new introduced bl_pipe_msg object, containing rpc_pipe_msg and proper wq.

Signed-off-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: replace global bl_mount_reply with per-net one</title>
<updated>2012-03-11T14:57:34Z</updated>
<author>
<name>Stanislav Kinsbursky</name>
</author>
<published>2012-03-11T14:20:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cb9c1c4a880bc734c2848f8647be2cfa336ee346'/>
<id>urn:sha1:cb9c1c4a880bc734c2848f8647be2cfa336ee346</id>
<content type='text'>
This global variable is used for blocklayout downcall and thus can be corrupted
if case of existence of multiple networks namespaces.

Signed-off-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: blocklayout pipe creation per network namespace context introduced</title>
<updated>2012-01-31T23:20:27Z</updated>
<author>
<name>Stanislav Kinsbursky</name>
</author>
<published>2012-01-10T13:04:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9e2e74dba6ddce94da187369b50a27536147d5df'/>
<id>urn:sha1:9e2e74dba6ddce94da187369b50a27536147d5df</id>
<content type='text'>
This patch implements blocklayout pipe creation and registration per each
existent network namespace.
This was achived by registering NFS per-net operations, responsible for
blocklayout pipe allocation/register and unregister/destruction instead of
initialization and destruction of static "bl_device_pipe" pipe (this one was
removed).
Note, than pointer to network blocklayout pipe is stored in per-net "nfs_net"
structure, because allocating of one more per-net structure for blocklayout
module looks redundant.
This patch also changes dev_remove() function prototype (and all it's callers,
where it' requied) by adding network namespace pointer parameter, which is used
to discover proper blocklayout pipe for rpc_queue_upcall() call.

Signed-off-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: split SUNPRC PipeFS dentry and private pipe data creation</title>
<updated>2012-01-31T23:20:25Z</updated>
<author>
<name>Stanislav Kinsbursky</name>
</author>
<published>2011-12-26T12:44:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c239d83b9921b8a8005a3bcd23000cfe18acf5c2'/>
<id>urn:sha1:c239d83b9921b8a8005a3bcd23000cfe18acf5c2</id>
<content type='text'>
This patch is a final step towards to removing PipeFS inode references from
kernel code other than PipeFS itself. It makes all kernel SUNRPC PipeFS users
depends on pipe private data, which state depend on their specific operations,
etc.
This patch completes SUNRPC PipeFS preparations and allows to create pipe
private data and PipeFS dentries independently.
Next step will be making SUNPRC PipeFS dentries allocated by SUNRPC PipeFS
network namespace aware routines.

Signed-off-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>pnfsblock: alloc short extent before submit bio</title>
<updated>2012-01-12T21:52:10Z</updated>
<author>
<name>Peng Tao</name>
</author>
<published>2012-01-12T15:18:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7c5465d6ccd759caa959828e2add5603518dafc4'/>
<id>urn:sha1:7c5465d6ccd759caa959828e2add5603518dafc4</id>
<content type='text'>
As discussed earlier, it is better for block client to allocate memory for
tracking extents state before submitting bio. So the patch does it by allocating
a short_extent for every INVALID extent touched by write pagelist and for
every zeroing page we created, saving them in layout header. Then in end_io we
can just use them to create commit list items and avoid memory allocation there.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>pnfsblock: cleanup bl_mark_sectors_init</title>
<updated>2012-01-12T21:52:09Z</updated>
<author>
<name>Peng Tao</name>
</author>
<published>2012-01-12T15:18:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=60c52e3a72fda10e82f38b6f979956eb2dcb3d4e'/>
<id>urn:sha1:60c52e3a72fda10e82f38b6f979956eb2dcb3d4e</id>
<content type='text'>
It does not need to manipulate on partial initialized blocks.
Writeback code takes care of it.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC/NFS: make rpc pipe upcall generic</title>
<updated>2011-10-18T16:08:12Z</updated>
<author>
<name>Peng Tao</name>
</author>
<published>2011-09-23T01:50:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c1225158a8dad9e9d5eee8a17dbbd9c7cda05ab9'/>
<id>urn:sha1:c1225158a8dad9e9d5eee8a17dbbd9c7cda05ab9</id>
<content type='text'>
The same function is used by idmap, gss and blocklayout code. Make it
generic.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Jim Rees &lt;rees@umich.edu&gt;
Cc: stable@kernel.org [3.0]
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>pnfsblock: fix size of upcall message</title>
<updated>2011-10-18T16:08:11Z</updated>
<author>
<name>Jim Rees</name>
</author>
<published>2011-09-23T01:50:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fdc17abbc4b6094b34ee8ff5d91eaba8637594a2'/>
<id>urn:sha1:fdc17abbc4b6094b34ee8ff5d91eaba8637594a2</id>
<content type='text'>
Make the status field explicitly 32 bits.  "...it's unlikely that the kernel
and userspace would differ on the size of an int here, but it might be a
good idea to go ahead and make that explicitly 32 bits in case we end up
dealing with more exotic arches at some point in the future."

Suggested-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: Jim Rees &lt;rees@umich.edu&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Cc: stable@kernel.org [3.0]
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>pnfsblock: note written INVAL areas for layoutcommit</title>
<updated>2011-07-31T16:18:17Z</updated>
<author>
<name>Fred Isaman</name>
</author>
<published>2011-07-31T00:52:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=31e6306a4046926b598484f1cacf69309382eac6'/>
<id>urn:sha1:31e6306a4046926b598484f1cacf69309382eac6</id>
<content type='text'>
Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Fred Isaman &lt;iisaman@citi.umich.edu&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@panasas.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Jim Rees &lt;rees@umich.edu&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>pnfsblock: cleanup_layoutcommit</title>
<updated>2011-07-31T16:18:17Z</updated>
<author>
<name>Fred Isaman</name>
</author>
<published>2011-07-31T00:52:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b2be7811dd94816f3df76708c8eb7f55bf7289e2'/>
<id>urn:sha1:b2be7811dd94816f3df76708c8eb7f55bf7289e2</id>
<content type='text'>
In blocklayout driver. There are two things happening
while layoutcommit/cleanup.
1. the modified extents are encoded.
2. On cleanup the extents are put back on the layout rw
   extents list, for reads.

In the new system where actual xdr encoding is done in
encode_layoutcommit() directly into xdr buffer, these are
the new commit stages:

1. On setup_layoutcommit, the range is adjusted as before
   and a structure is allocated for communication with
   bl_encode_layoutcommit &amp;&amp; bl_cleanup_layoutcommit
   (Generic layer provides a void-star to hang it on)

2. bl_encode_layoutcommit is called to do the actual
   encoding directly into xdr. The commit-extent-list is not
   freed and is stored on above structure.
   FIXME: The code is not yet converted to the new XDR cleanup

3. On cleanup the commit-extent-list is put back by a call
   to set_to_rw() as before, but with no need for XDR decoding
   of the list as before. And the commit-extent-list is freed.
   Finally allocated structure is freed.

[rm inode and pnfs_layout_hdr args from cleanup_layoutcommit()]
Signed-off-by: Jim Rees &lt;rees@umich.edu&gt;
[pnfsblock: introduce bl_committing list]
Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
[pnfsblock: SQUASHME: adjust to API change]
Signed-off-by: Fred Isaman &lt;iisaman@citi.umich.edu&gt;
[blocklayout: encode_layoutcommit implementation]
Signed-off-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
[pnfsblock: fix bug setting up layoutcommit.]
Signed-off-by: Tao Guo &lt;guotao@nrchpc.ac.cn&gt;
[pnfsblock: cleanup_layoutcommit wants a status parameter]
Signed-off-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@panasas.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Jim Rees &lt;rees@umich.edu&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
</feed>
