From: David Howells <dhowells@redhat.com>
To: linux-afs@lists.infradead.org
Cc: dhowells@redhat.com, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [RFC PATCH 00/11] AFS: Namespacing part 1
Date: Fri, 01 Sep 2017 16:52:00 +0100 [thread overview]
Message-ID: <25548.1504281120@warthog.procyon.org.uk> (raw)
In-Reply-To: <150428045304.25051.1778333106306853298.stgit@warthog.procyon.org.uk>
Here are some changes to the AFS filesystem that form the first part of
network-namespacing and IPv6 enabling the AFS filesystem. AF_RXRPC is
already namespaced.
This is built on AF_RXRPC changes tagged with rxrpc-next-20170829 (which is
also in net-next).
The AFS changes are:
(1) Create a dummy AFS network namespace and shift a bunch of global
things into it and start using it.
(2) Add some more AFS RPC protocol definitions.
(3) Update the cache infrastructure to remove some stuff that is redundant
or not actually useful and increment the version.
(4) Keep track of internal addresses in terms of sockaddr_rxrpc structs
rather than in_addr structs. This will enable the use of IPv6.
(5) Allow IPv6 addresses for VL servers to be specified. Note that this
doesn't help with finding FS servers as that requires a protocol
change. Such a protocol extension is available in the AuriStor
AFS-compatible server, though I haven't implemented that yet.
(6) Overhaul cell database management to manage them better, making them
automatically kept up to date from the DNS server.
(7) Make use of the new AF_RXRPC call-retry to implement address rotation
for VL servers and FS servers without the need to re-encrypt client
call data.
To make this work, I've added some extensions to the core kernel:
(1) Add a decrement-after-return function for workqueues that allows a
work item to ask the workqueue manager to decrement an atomic_t and
'wake it up' if it reaches 0. This is analogous to
complete_and_exit() and can be used to protect rmmod against code
removal.
(2) Add refcount_inc/dec_return() functions that return the new value of
the refcount_t. This makes maintaining a cache easier where you want
to schedule timed garbage collection when the refcount reaches 1. It
also makes tracing easier as the value is obtained atomically.
(3) Pass the wait mode to wait_on_atomic_t() and provide a default action
function. This allows various default actions scattered about the
place to be deleted.
(4) Add a function to start or reduce the timeout on a timer if it's
already running. This makes it easier to maintain a single timer for
multiple events without requiring extra locking to check/modify the
timer (the timer has its own lock after all).
The patches can be found here also:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=afs
David
next prev parent reply other threads:[~2017-09-01 15:52 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-01 15:40 [RFC PATCH 01/11] workqueue: Add a decrement-after-return and wake if 0 facility David Howells
2017-09-01 15:41 ` [RFC PATCH 02/11] refcount: Implement inc/decrement-and-return functions David Howells
2017-09-01 16:42 ` Peter Zijlstra
2017-09-01 21:15 ` David Howells
2017-09-01 21:50 ` Peter Zijlstra
2017-09-01 22:03 ` Peter Zijlstra
2017-09-01 22:51 ` David Howells
2017-09-04 7:30 ` Peter Zijlstra
2017-09-04 15:36 ` Christoph Hellwig
2017-09-04 16:08 ` David Howells
2017-09-05 6:45 ` Christoph Hellwig
2017-09-01 15:41 ` [RFC PATCH 03/11] Pass mode to wait_on_atomic_t() action funcs and provide default actions David Howells
2017-09-01 15:41 ` [RFC PATCH 04/11] Add a function to start/reduce a timer David Howells
2017-10-20 12:20 ` Thomas Gleixner
2017-11-09 0:33 ` David Howells
2017-09-01 15:41 ` [RFC PATCH 05/11] afs: Lay the groundwork for supporting network namespaces David Howells
2017-09-01 15:41 ` [RFC PATCH 06/11] afs: Add some protocol defs David Howells
2017-09-01 15:41 ` [RFC PATCH 07/11] afs: Update the cache index structure David Howells
2017-09-01 15:41 ` [RFC PATCH 08/11] afs: Keep and pass sockaddr_rxrpc addresses rather than in_addr David Howells
2017-09-01 15:41 ` [RFC PATCH 09/11] afs: Allow IPv6 address specification of VL servers David Howells
2017-09-01 15:42 ` [RFC PATCH 10/11] afs: Overhaul cell database management David Howells
2017-09-01 15:42 ` [RFC PATCH 11/11] afs: Retry rxrpc calls with address rotation on network error David Howells
2017-09-01 15:52 ` David Howells [this message]
2017-09-05 13:29 ` [RFC PATCH 01/11] workqueue: Add a decrement-after-return and wake if 0 facility Tejun Heo
2017-09-05 14:50 ` David Howells
2017-09-06 14:51 ` Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=25548.1504281120@warthog.procyon.org.uk \
--to=dhowells@redhat.com \
--cc=linux-afs@lists.infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox