<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>a5b5beeb - afs: Use the contained hashtable to search a directory</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#a5b5beeb</link>
        <description>afs: Use the contained hashtable to search a directoryEach directory image contains a hashtable with 128 buckets to speed upsearching.  Currently, kafs does not use this, but rather iterates over allthe occupied slots in the image as it can share this with readdir.Switch kafs to use the hashtable for lookups to reduce the latency.  Caremust be taken that the hash chains are acyclic.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;Link: https://lore.kernel.org/r/20241216204124.3752367-30-dhowells@redhat.comcc: Marc Dionne &lt;marc.dionne@auristor.com&gt;cc: linux-afs@lists.infradead.orgSigned-off-by: Christian Brauner &lt;brauner@kernel.org&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Mon, 16 Dec 2024 20:41:19 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>dfa0a449 - afs: Move the vnode/volume validity checking code into its own file</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#dfa0a449</link>
        <description>afs: Move the vnode/volume validity checking code into its own fileMove the code that does validity checking of vnodes and volumes withrespect to third-party changes into its own file.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;cc: Marc Dionne &lt;marc.dionne@auristor.com&gt;cc: linux-afs@lists.infradead.org

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Tue, 07 Nov 2023 09:47:52 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>f94f70d3 - afs: Provide a way to configure address priorities</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#f94f70d3</link>
        <description>afs: Provide a way to configure address prioritiesAFS servers may have multiple addresses, but the client can&apos;t easily judgebetween them as to which one is best.  For instance, an address that has alarger RTT might actually have a better bandwidth because it goes through aswitch rather than being directly connected - but we can&apos;t work this outdynamically unless we push through sufficient data that we can measure it.To allow the administrator to configure this, add a list of preferenceweightings for server addresses by IPv4/IPv6 address or subnet and allowthis to be viewed through a procfile and altered by writing text commandsto that same file.  Preference rules can be added/updated by:	echo &quot;add &lt;proto&gt; &lt;addr&gt;[/&lt;subnet&gt;] &lt;prior&gt;&quot; &gt;/proc/fs/afs/addr_prefs	echo &quot;add udp 1.2.3.4 1000&quot; &gt;/proc/fs/afs/addr_prefs	echo &quot;add udp 192.168.0.0/16 3000&quot; &gt;/proc/fs/afs/addr_prefs	echo &quot;add udp 1001:2002:0:6::/64 4000&quot; &gt;/proc/fs/afs/addr_prefsand removed by:	echo &quot;del &lt;proto&gt; &lt;addr&gt;[/&lt;subnet&gt;]&quot; &gt;/proc/fs/afs/addr_prefs	echo &quot;del udp 1.2.3.4&quot; &gt;/proc/fs/afs/addr_prefswhere the priority is a number between 0 and 65535.The list is split between IPv4 and IPv6 addresses and each sublist is keptin numerical order, with rules that would otherwise match but havedifferent subnet masking being ordered with the most specific submatchfirst.A subsequent patch will apply these rules.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;cc: Marc Dionne &lt;marc.dionne@auristor.com&gt;cc: linux-afs@lists.infradead.org

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Fri, 27 Oct 2023 10:42:57 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>523d27cd - afs: Convert afs to use the new fscache API</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#523d27cd</link>
        <description>afs: Convert afs to use the new fscache APIChange the afs filesystem to support the new afs driver.The following changes have been made: (1) The fscache_netfs struct is no more, and there&apos;s no need to register     the filesystem as a whole.  There&apos;s also no longer a cell cookie. (2) The volume cookie is now an fscache_volume cookie, allocated with     fscache_acquire_volume().  This function takes three parameters: a     string representing the &quot;volume&quot; in the index, a string naming the     cache to use (or NULL) and a u64 that conveys coherency metadata for     the volume.     For afs, I&apos;ve made it render the volume name string as:        &quot;afs,&lt;cell&gt;,&lt;volume_id&gt;&quot;     and the coherency data is currently 0. (3) The fscache_cookie_def is no more and needed information is passed     directly to fscache_acquire_cookie().  The cache no longer calls back     into the filesystem, but rather metadata changes are indicated at     other times.     fscache_acquire_cookie() is passed the same keying and coherency     information as before, except that these are now stored in big endian     form instead of cpu endian.  This makes the cache more copyable. (4) fscache_use_cookie() and fscache_unuse_cookie() are called when a file     is opened or closed to prevent a cache file from being culled and to     keep resources to hand that are needed to do I/O.     fscache_use_cookie() is given an indication if the cache is likely to     be modified locally (e.g. the file is open for writing).     fscache_unuse_cookie() is given a coherency update if we had the file     open for writing and will update that. (5) fscache_invalidate() is now given uptodate auxiliary data and a file     size.  It can also take a flag to indicate if this was due to a DIO     write.  This is wrapped into afs_fscache_invalidate() now for     convenience. (6) fscache_resize() now gets called from the finalisation of     afs_setattr(), and afs_setattr() does use/unuse of the cookie around     the call to support this. (7) fscache_note_page_release() is called from afs_release_page(). (8) Use a killable wait in nfs_vm_page_mkwrite() when waiting for     PG_fscache to be cleared.Render the parts of the cookie key for an afs inode cookie as big endian.Changes=======ver #2: - Use gfpflags_allow_blocking() rather than using flag directly. - fscache_acquire_volume() now returns errors.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;Acked-by: Jeff Layton &lt;jlayton@kernel.org&gt;Tested-by: kafs-testing@auristor.comcc: Marc Dionne &lt;marc.dionne@auristor.com&gt;cc: linux-afs@lists.infradead.orgcc: linux-cachefs@redhat.comLink: https://lore.kernel.org/r/163819661382.215744.1485608824741611837.stgit@warthog.procyon.org.uk/ # v1Link: https://lore.kernel.org/r/163906970002.143852.17678518584089878259.stgit@warthog.procyon.org.uk/ # v2Link: https://lore.kernel.org/r/163967174665.1823006.1301789965454084220.stgit@warthog.procyon.org.uk/ # v3Link: https://lore.kernel.org/r/164021568841.640689.6684240152253400380.stgit@warthog.procyon.org.uk/ # v4

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Thu, 06 Feb 2020 14:22:21 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>8a070a96 - afs: Detect cell aliases 1 - Cells with root volumes</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#8a070a96</link>
        <description>afs: Detect cell aliases 1 - Cells with root volumesPut in the first phase of cell alias detection.  This part handles aliasdetection for cells that have root.cell volumes (which is expected to belikely).When a cell becomes newly active, it is probed for its root.cell volume,and if it has one, this volume is compared against other root.cell volumesto find out if the list of fileserver UUIDs have any in common - and ifthat&apos;s the case, do the address lists of those fileservers have anyaddresses in common.  If they do, the new cell is adjudged to be an aliasof the old cell and the old cell is used instead.Comparing is aided by the server list in struct afs_server_list beingsorted in UUID order and the addresses in the fileserver address listsbeing sorted in address order.The cell then retains the afs_volume object for the root.cell volume, evenif it&apos;s not mounted for future alias checking.This necessary because: (1) Whilst fileservers have UUIDs that are meant to be globally unique, in     practice they are not because cells get cloned without changing the     UUIDs - so afs_server records need to be per cell. (2) Sometimes the DNS is used to make cell aliases - but if we don&apos;t know     they&apos;re the same, we may end up with multiple superblocks and multiple     afs_server records for the same thing, impairing our ability to     deliver callback notifications of third party changes (3) The fileserver RPC API doesn&apos;t contain the cell name, so it can&apos;t tell     us which cell it&apos;s notifying and can&apos;t see that a change made to to     one cell should notify the same client that&apos;s also accessed as the     other cell.Reported-by: Jeffrey Altman &lt;jaltman@auristor.com&gt;Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Sat, 25 Apr 2020 09:26:02 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>e49c7b2f - afs: Build an abstraction around an &quot;operation&quot; concept</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#e49c7b2f</link>
        <description>afs: Build an abstraction around an &quot;operation&quot; conceptTurn the afs_operation struct into the main way that most fileserveroperations are managed.  Various things are added to the struct, includingthe following: (1) All the parameters and results of the relevant operations are moved     into it, removing corresponding fields from the afs_call struct.     afs_call gets a pointer to the op. (2) The target volume is made the main focus of the operation, rather than     the target vnode(s), and a bunch of op-&gt;vnode-&gt;volume are made     op-&gt;volume instead. (3) Two vnode records are defined (op-&gt;file[]) for the vnode(s) involved     in most operations.  The vnode record (struct afs_vnode_param)     contains:	- The vnode pointer.	- The fid of the vnode to be included in the parameters or that was          returned in the reply (eg. FS.MakeDir).	- The status and callback information that may be returned in the     	  reply about the vnode.	- Callback break and data version tracking for detecting          simultaneous third-parth changes. (4) Pointers to dentries to be updated with new inodes. (5) An operations table pointer.  The table includes pointers to functions     for issuing AFS and YFS-variant RPCs, handling the success and abort     of an operation and handling post-I/O-lock local editing of a     directory.To make this work, the following function restructuring is made: (A) The rotation loop that issues calls to fileservers that can be found     in each function that wants to issue an RPC (such as afs_mkdir()) is     extracted out into common code, in a new file called fs_operation.c. (B) The rotation loops, such as the one in afs_mkdir(), are replaced with     a much smaller piece of code that allocates an operation, sets the     parameters and then calls out to the common code to do the actual     work. (C) The code for handling the success and failure of an operation are     moved into operation functions (as (5) above) and these are called     from the core code at appropriate times. (D) The pseudo inode getting stuff used by the dynamic root code is moved     over into dynroot.c. (E) struct afs_iget_data is absorbed into the operation struct and     afs_iget() expects to be given an op pointer and a vnode record. (F) Point (E) doesn&apos;t work for the root dir of a volume, but we know the     FID in advance (it&apos;s always vnode 1, unique 1), so a separate inode     getter, afs_root_iget(), is provided to special-case that. (G) The inode status init/update functions now also take an op and a vnode     record. (H) The RPC marshalling functions now, for the most part, just take an     afs_operation struct as their only argument.  All the data they need     is held there.  The result delivery functions write their answers     there as well. (I) The call is attached to the operation and then the operation core does     the waiting.And then the new operation code is, for the moment, made to just initialisethe operation, get the appropriate vnode I/O locks and do the same rotationloop as before.This lays the foundation for the following changes in the future: (*) Overhauling the rotation (again). (*) Support for asynchronous I/O, where the fileserver rotation must be     done asynchronously also.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Fri, 10 Apr 2020 19:51:51 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>35ebfc22 - afs: do not send list of client addresses</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#35ebfc22</link>
        <description>afs: do not send list of client addressesDavid Howells says:  I&apos;m told that there&apos;s not really any point populating the list.  Current OpenAFS ignores it, as does AuriStor - and IBM AFS 3.6 will  do the right thing.  The list is actually useless as it&apos;s the client&apos;s view of the world,  not the servers, so if there&apos;s any NAT in the way its contents are  invalid.  Further, it doesn&apos;t support IPv6 addresses.  On that basis, feel free to make it an empty list and remove all the  interface enumeration.V1 of this patch reworked the function to use a new helper for theifa_list iteration to avoid sparse warnings once the proper __rcuannotations get added in struct in_device later.But, in light of the above, just remove afs_get_ipv4_interfaces.Compile tested only.Cc: David Howells &lt;dhowells@redhat.com&gt;Cc: linux-afs@lists.infradead.orgSigned-off-by: Florian Westphal &lt;fw@strlen.de&gt;Tested-by: David Howells &lt;dhowells@redhat.com&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Fri, 31 May 2019 16:27:03 +0000</pubDate>
        <dc:creator>Florian Westphal &lt;fw@strlen.de&gt;</dc:creator>
    </item>
<item>
        <title>79ddbfa5 - afs: Implement sillyrename for unlink and rename</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#79ddbfa5</link>
        <description>afs: Implement sillyrename for unlink and renameImplement sillyrename for AFS unlink and rename, using the NFS variantimplementation as a basis.Note that the asynchronous file locking extender/releaser has to benotified with a state change to stop it complaining if there&apos;s a racebetween that and the actual file deletion.A tracepoint, afs_silly_rename, is also added to note the silly rename andthe cleanup.  The afs_edit_dir tracepoint is given some extra reasonindicators and the afs_flock_ev tracepoint is given a silly-delete filelock cancellation indicator.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Thu, 25 Apr 2019 13:26:51 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>3bf0fb6f - afs: Probe multiple fileservers simultaneously</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#3bf0fb6f</link>
        <description>afs: Probe multiple fileservers simultaneouslySend probes to all the unprobed fileservers in a fileserver list on alladdresses simultaneously in an attempt to find out the fastest route whilstnot getting stuck for 20s on any server or address that we don&apos;t get areply from.This alleviates the problem whereby attempting to access a new server cantake a long time because the rotation algorithm ends up rotating throughall servers and addresses until it finds one that responds.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Fri, 19 Oct 2018 23:57:59 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>30062bd1 - afs: Implement YFS support in the fs client</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#30062bd1</link>
        <description>afs: Implement YFS support in the fs clientImplement support for talking to YFS-variant fileservers in the cachemanager and the filesystem client.  These implement upgraded services onthe same port as their AFS services.YFS fileservers provide expanded capabilities over AFS.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Fri, 19 Oct 2018 23:57:58 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>0a5143f2 - afs: Implement VL server rotation</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#0a5143f2</link>
        <description>afs: Implement VL server rotationTrack VL servers as independent entities rather than lumping all theiraddresses together into one set and implement server-level rotation by: (1) Add the concept of a VL server list, where each server has its own     separate address list.  This code is similar to the FS server list. (2) Use the DNS resolver to retrieve a set of servers and their associated     addresses, ports, preference and weight ratings. (3) In the case of a legacy DNS resolver or an address list given directly     through /proc/net/afs/cells, create a list containing just a dummy     server record and attach all the addresses to that. (4) Implement a simple rotation policy, for the moment ignoring the     priorities and weights assigned to the servers. (5) Show the address list through /proc/net/afs/&lt;cell&gt;/vlservers.  This     also displays the source and status of the data as indicated by the     upcall.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Fri, 19 Oct 2018 23:57:57 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>b6cfbeca - afs: Handle CONFIG_PROC_FS=n</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#b6cfbeca</link>
        <description>afs: Handle CONFIG_PROC_FS=nThe AFS filesystem depends at the moment on /proc for configuration andalso presents information that way - however, this causes a compilationfailure if procfs is disabled.Fix it so that the procfs bits aren&apos;t compiled in if procfs is disabled.This means that you can&apos;t configure the AFS filesystem directly, but it isstill usable provided that an up-to-date keyutils is installed to look upcells by SRV or AFSDB DNS records.Reported-by: Al Viro &lt;viro@ZenIV.linux.org.uk&gt;Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Tue, 05 Jun 2018 09:54:24 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>63a4681f - afs: Locally edit directory data for mkdir/create/unlink/...</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#63a4681f</link>
        <description>afs: Locally edit directory data for mkdir/create/unlink/...Locally edit the contents of an AFS directory upon a successful inodeoperation that modifies that directory (such as mkdir, create and unlink)so that we can avoid the current practice of re-downloading the directoryafter each change.This is viable provided that the directory version number we get back fromthe modifying RPC op is exactly incremented by 1 from what we hadpreviously.  The data in the directory contents is in a defined format thatwe have to parse locally to perform lookups and readdir, so modifying isn&apos;ta problem.If the edit fails, we just clear the VALID flag on the directory and itwill be reloaded next time it is needed.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Fri, 06 Apr 2018 13:17:25 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>66c7e1d3 - afs: Split the dynroot stuff out and give it its own ops tables</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#66c7e1d3</link>
        <description>afs: Split the dynroot stuff out and give it its own ops tablesSplit the AFS dynamic root stuff out of the main directory handling fileand into its own file as they share little in common.The dynamic root code also gets its own dentry and inode ops tables.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Fri, 06 Apr 2018 13:17:25 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>d2ddc776 - afs: Overhaul volume and server record caching and fileserver rotation</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#d2ddc776</link>
        <description>afs: Overhaul volume and server record caching and fileserver rotationThe current code assumes that volumes and servers are per-cell and arenever shared, but this is not enforced, and, indeed, public cells do existthat are aliases of each other.  Further, an organisation can, say, set upa public cell and a private cell with overlapping, but not identical, setsof servers.  The difference is purely in the database attached to the VLservers.The current code will malfunction if it sees a server in two cells as itassumes global address -&gt; server record mappings and that each server is injust one cell.Further, each server may have multiple addresses - and may have addressesof different families (IPv4 and IPv6, say).To this end, the following structural changes are made: (1) Server record management is overhauled:     (a) Server records are made independent of cell.  The namespace keeps     	 track of them, volume records have lists of them and each vnode     	 has a server on which its callback interest currently resides.     (b) The cell record no longer keeps a list of servers known to be in     	 that cell.     (c) The server records are now kept in a flat list because there&apos;s no     	 single address to sort on.     (d) Server records are now keyed by their UUID within the namespace.     (e) The addresses for a server are obtained with the VL.GetAddrsU     	 rather than with VL.GetEntryByName, using the server&apos;s UUID as a     	 parameter.     (f) Cached server records are garbage collected after a period of     	 non-use and are counted out of existence before purging is allowed     	 to complete.  This protects the work functions against rmmod.     (g) The servers list is now in /proc/fs/afs/servers. (2) Volume record management is overhauled:     (a) An RCU-replaceable server list is introduced.  This tracks both     	 servers and their coresponding callback interests.     (b) The superblock is now keyed on cell record and numeric volume ID.     (c) The volume record is now tied to the superblock which mounts it,     	 and is activated when mounted and deactivated when unmounted.     	 This makes it easier to handle the cache cookie without causing a     	 double-use in fscache.     (d) The volume record is loaded from the VLDB using VL.GetEntryByNameU     	 to get the server UUID list.     (e) The volume name is updated if it is seen to have changed when the     	 volume is updated (the update is keyed on the volume ID). (3) The vlocation record is got rid of and VLDB records are no longer     cached.  Sufficient information is stored in the volume record, though     an update to a volume record is now no longer shared between related     volumes (volumes come in bundles of three: R/W, R/O and backup).and the following procedural changes are made: (1) The fileserver cursor introduced previously is now fleshed out and     used to iterate over fileservers and their addresses. (2) Volume status is checked during iteration, and the server list is     replaced if a change is detected. (3) Server status is checked during iteration, and the address list is     replaced if a change is detected. (4) The abort code is saved into the address list cursor and -ECONNABORTED     returned in afs_make_call() if a remote abort happened rather than     translating the abort into an error message.  This allows actions to     be taken depending on the abort code more easily.     (a) If a VMOVED abort is seen then this is handled by rechecking the     	 volume and restarting the iteration.     (b) If a VBUSY, VRESTARTING or VSALVAGING abort is seen then this is         handled by sleeping for a short period and retrying and/or trying         other servers that might serve that volume.  A message is also         displayed once until the condition has cleared.     (c) If a VOFFLINE abort is seen, then this is handled as VBUSY for the     	 moment.     (d) If a VNOVOL abort is seen, the volume is rechecked in the VLDB to     	 see if it has been deleted; if not, the fileserver is probably     	 indicating that the volume couldn&apos;t be attached and needs     	 salvaging.     (e) If statfs() sees one of these aborts, it does not sleep, but     	 rather returns an error, so as not to block the umount program. (5) The fileserver iteration functions in vnode.c are now merged into     their callers and more heavily macroised around the cursor.  vnode.c     is removed. (6) Operations on a particular vnode are serialised on that vnode because     the server will lock that vnode whilst it operates on it, so a second     op sent will just have to wait. (7) Fileservers are probed with FS.GetCapabilities before being used.     This is where service upgrade will be done. (8) A callback interest on a fileserver is set up before an FS operation     is performed and passed through to afs_make_call() so that it can be     set on the vnode if the operation returns a callback.  The callback     interest is passed through to afs_iget() also so that it can be set     there too.In general, record updating is done on an as-needed basis when we try toaccess servers, volumes or vnodes rather than offloading it to work itemsand special threads.Notes: (1) Pre AFS-3.4 servers are no longer supported, though this can be added     back if necessary (AFS-3.4 was released in 1998). (2) VBUSY is retried forever for the moment at intervals of 1s. (3) /proc/fs/afs/&lt;cell&gt;/servers no longer exists.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Thu, 02 Nov 2017 15:27:50 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>9cc6fc50 - afs: Move server rotation code into its own file</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#9cc6fc50</link>
        <description>afs: Move server rotation code into its own fileMove server rotation code into its own file.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Thu, 02 Nov 2017 15:27:50 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>8b2a464c - afs: Add an address list concept</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#8b2a464c</link>
        <description>afs: Add an address list conceptAdd an RCU replaceable address list structure to hold a list of serveraddresses.  The list also holds theTo this end: (1) A cell&apos;s VL server address list can be loaded directly via insmod or     echo to /proc/fs/afs/cells or dynamically from a DNS query for AFSDB     or SRV records. (2) Anyone wanting to use a cell&apos;s VL server address must wait until the     cell record comes online and has tried to obtain some addresses. (3) An FS server&apos;s address list, for the moment, has a single entry that     is the key to the server list.  This will change in the future when a     server is instead keyed on its UUID and the VL.GetAddrsU operation is     used. (4) An &apos;address cursor&apos; concept is introduced to handle iteration through     the address list.  This is passed to the afs_make_call() as, in the     future, stuff (such as abort code) that doesn&apos;t outlast the call will     be returned in it.In the future, we might want to annotate the list with information abouthow each address fares.  We might then want to propagate such annotationsover address list replacement.Whilst we&apos;re at it, we allow IPv6 addresses to be specified incolon-delimited lists by enclosing them in square brackets.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Thu, 02 Nov 2017 15:27:50 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>b2441318 - License cleanup: add SPDX GPL-2.0 license identifier to files with no license</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#b2441318</link>
        <description>License cleanup: add SPDX GPL-2.0 license identifier to files with no licenseMany source files in the tree are missing licensing information, whichmakes it harder for compliance tools to determine the correct license.By default all files without license information are under the defaultlicense of the kernel, which is GPL version 2.Update the files which contain no license information with the &apos;GPL-2.0&apos;SPDX license identifier.  The SPDX identifier is a legally bindingshorthand, which can be used instead of the full boiler plate text.This patch is based on work done by Thomas Gleixner and Kate Stewart andPhilippe Ombredanne.How this work was done:Patches were generated and checked against linux-4.14-rc6 for a subset ofthe use cases: - file had no licensing information it it. - file was a */uapi/* one with no licensing information in it, - file was a */uapi/* one with existing licensing information,Further patches will be generated in subsequent months to fix up caseswhere non-standard license headers were used, and references to licensehad to be inferred by heuristics based on keywords.The analysis to determine which SPDX License Identifier to be applied toa file was done in a spreadsheet of side by side results from of theoutput of two independent scanners (ScanCode &amp; Windriver) producing SPDXtag:value files created by Philippe Ombredanne.  Philippe prepared thebase worksheet, and did an initial spot review of a few 1000 files.The 4.13 kernel was the starting point of the analysis with 60,537 filesassessed.  Kate Stewart did a file by file comparison of the scannerresults in the spreadsheet to determine which SPDX license identifier(s)to be applied to the file. She confirmed any determination that was notimmediately clear with lawyers working with the Linux Foundation.Criteria used to select files for SPDX license identifier tagging was: - Files considered eligible had to be source code files. - Make and config files were included as candidates if they contained &gt;5   lines of source - File already had some variant of a license header in it (even if &lt;5   lines).All documentation files were explicitly excluded.The following heuristics were used to determine which SPDX licenseidentifiers to apply. - when both scanners couldn&apos;t find any license traces, file was   considered to have no license information in it, and the top level   COPYING file license applied.   For non */uapi/* files that summary was:   SPDX license identifier                            # files   ---------------------------------------------------|-------   GPL-2.0                                              11139   and resulted in the first patch in this series.   If that file was a */uapi/* path one, it was &quot;GPL-2.0 WITH   Linux-syscall-note&quot; otherwise it was &quot;GPL-2.0&quot;.  Results of that was:   SPDX license identifier                            # files   ---------------------------------------------------|-------   GPL-2.0 WITH Linux-syscall-note                        930   and resulted in the second patch in this series. - if a file had some form of licensing information in it, and was one   of the */uapi/* ones, it was denoted with the Linux-syscall-note if   any GPL family license was found in the file or had no licensing in   it (per prior point).  Results summary:   SPDX license identifier                            # files   ---------------------------------------------------|------   GPL-2.0 WITH Linux-syscall-note                       270   GPL-2.0+ WITH Linux-syscall-note                      169   ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause)    21   ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)    17   LGPL-2.1+ WITH Linux-syscall-note                      15   GPL-1.0+ WITH Linux-syscall-note                       14   ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause)    5   LGPL-2.0+ WITH Linux-syscall-note                       4   LGPL-2.1 WITH Linux-syscall-note                        3   ((GPL-2.0 WITH Linux-syscall-note) OR MIT)              3   ((GPL-2.0 WITH Linux-syscall-note) AND MIT)             1   and that resulted in the third patch in this series. - when the two scanners agreed on the detected license(s), that became   the concluded license(s). - when there was disagreement between the two scanners (one detected a   license but the other didn&apos;t, or they both detected different   licenses) a manual inspection of the file occurred. - In most cases a manual inspection of the information in the file   resulted in a clear resolution of the license that should apply (and   which scanner probably needed to revisit its heuristics). - When it was not immediately clear, the license identifier was   confirmed with lawyers working with the Linux Foundation. - If there was any question as to the appropriate license identifier,   the file was flagged for further research and to be revisited later   in time.In total, over 70 hours of logged manual review was done on thespreadsheet to determine the SPDX license identifiers to apply to thesource files by Kate, Philippe, Thomas and, in some cases, confirmationby lawyers working with the Linux Foundation.Kate also obtained a third independent scan of the 4.13 code base fromFOSSology, and compared selected files where the other two scannersdisagreed against that SPDX file, to see if there was new insights.  TheWindriver scanner is based on an older version of FOSSology in part, sothey are related.Thomas did random spot checks in about 500 files from the spreadsheetsfor the uapi headers and agreed with SPDX license identifier in thefiles he inspected. For the non-uapi files Thomas did random spot checksin about 15000 files.In initial set of patches against 4.14-rc6, 3 files were found to havecopy/paste license identifier errors, and have been fixed to reflect thecorrect identifier.Additionally Philippe spent 10 hours this week doing a detailed manualinspection and review of the 12,461 patched files from the initial patchversion early this week with: - a full scancode scan run, collecting the matched texts, detected   license ids and scores - reviewing anything where there was a license detected (about 500+   files) to ensure that the applied SPDX license was correct - reviewing anything where there was no detection but the patch license   was not GPL-2.0 WITH Linux-syscall-note to ensure that the applied   SPDX license was correctThis produced a worksheet with 20 files needing minor correction.  Thisworksheet was then exported into 3 different .csv files for thedifferent types of files to be modified.These .csv files were then reviewed by Greg.  Thomas wrote a script toparse the csv files and add the proper SPDX tag to the file, in theformat that the file expected.  This script was further refined by Gregbased on the output to detect more types of files automatically and todistinguish between header and source .c files (which need differentcomment types.)  Finally Greg ran the script using the .csv files togenerate the patches.Reviewed-by: Kate Stewart &lt;kstewart@linuxfoundation.org&gt;Reviewed-by: Philippe Ombredanne &lt;pombredanne@nexb.com&gt;Reviewed-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Wed, 01 Nov 2017 14:07:57 +0000</pubDate>
        <dc:creator>Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;</dc:creator>
    </item>
<item>
        <title>d3e3b7ea - afs: Add metadata xattrs</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#d3e3b7ea</link>
        <description>afs: Add metadata xattrsAdd xattrs to allow the user to get/set metadata in lieu of having pioctl()available.  The following xattrs are now available: - &quot;afs.cell&quot;   The name of the cell in which the vnode&apos;s volume resides. - &quot;afs.fid&quot;   The volume ID, vnode ID and vnode uniquifier of the file as three hex   numbers separated by colons. - &quot;afs.volume&quot;   The name of the volume in which the vnode resides.For example:	# getfattr -d -m &quot;.*&quot; /mnt/scratch	getfattr: Removing leading &apos;/&apos; from absolute path names	# file: mnt/scratch	afs.cell=&quot;mycell.myorg.org&quot;	afs.fid=&quot;10000b:1:1&quot;	afs.volume=&quot;scratch&quot;Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Thu, 06 Jul 2017 14:50:27 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>9b3f26c9 - FS-Cache: Make kAFS use FS-Cache</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/fs/afs/Makefile#9b3f26c9</link>
        <description>FS-Cache: Make kAFS use FS-CacheThe attached patch makes the kAFS filesystem in fs/afs/ use FS-Cache, andthrough it any attached caches.  The kAFS filesystem will use cachingautomatically if it&apos;s available.Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;Acked-by: Steve Dickson &lt;steved@redhat.com&gt;Acked-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;Acked-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;Tested-by: Daire Byrne &lt;Daire.Byrne@framestore.com&gt;

            List of files:
            /linux-6.15/fs/afs/Makefile</description>
        <pubDate>Fri, 03 Apr 2009 15:42:41 +0000</pubDate>
        <dc:creator>David Howells &lt;dhowells@redhat.com&gt;</dc:creator>
    </item>
</channel>
</rss>
