1. 18 7月, 2018 1 次提交
  2. 08 6月, 2018 2 次提交
  3. 06 6月, 2018 1 次提交
  4. 05 6月, 2018 1 次提交
  5. 31 5月, 2018 1 次提交
  6. 30 5月, 2018 1 次提交
  7. 26 5月, 2018 3 次提交
  8. 21 5月, 2018 1 次提交
    • E
      fscrypt: add Speck128/256 support · 12d28f79
      Eric Biggers 提交于
      fscrypt currently only supports AES encryption.  However, many low-end
      mobile devices have older CPUs that don't have AES instructions, e.g.
      the ARMv8 Cryptography Extensions.  Currently, user data on such devices
      is not encrypted at rest because AES is too slow, even when the NEON
      bit-sliced implementation of AES is used.  Unfortunately, it is
      infeasible to encrypt these devices at all when AES is the only option.
      
      Therefore, this patch updates fscrypt to support the Speck block cipher,
      which was recently added to the crypto API.  The C implementation of
      Speck is not especially fast, but Speck can be implemented very
      efficiently with general-purpose vector instructions, e.g. ARM NEON.
      For example, on an ARMv7 processor, we measured the NEON-accelerated
      Speck128/256-XTS at 69 MB/s for both encryption and decryption, while
      AES-256-XTS with the NEON bit-sliced implementation was only 22 MB/s
      encryption and 19 MB/s decryption.
      
      There are multiple variants of Speck.  This patch only adds support for
      Speck128/256, which is the variant with a 128-bit block size and 256-bit
      key size -- the same as AES-256.  This is believed to be the most secure
      variant of Speck, and it's only about 6% slower than Speck128/128.
      Speck64/128 would be at least 20% faster because it has 20% rounds, and
      it can be even faster on CPUs that can't efficiently do the 64-bit
      operations needed for Speck128.  However, Speck64's 64-bit block size is
      not preferred security-wise.  ARM NEON also supports the needed 64-bit
      operations even on 32-bit CPUs, resulting in Speck128 being fast enough
      for our targeted use cases so far.
      
      The chosen modes of operation are XTS for contents and CTS-CBC for
      filenames.  These are the same modes of operation that fscrypt defaults
      to for AES.  Note that as with the other fscrypt modes, Speck will not
      be used unless userspace chooses to use it.  Nor are any of the existing
      modes (which are all AES-based) being removed, of course.
      
      We intentionally don't make CONFIG_FS_ENCRYPTION select
      CONFIG_CRYPTO_SPECK, so people will have to enable Speck support
      themselves if they need it.  This is because we shouldn't bloat the
      FS_ENCRYPTION dependencies with every new cipher, especially ones that
      aren't recommended for most users.  Moreover, CRYPTO_SPECK is just the
      generic implementation, which won't be fast enough for many users; in
      practice, they'll need to enable CRYPTO_SPECK_NEON to get acceptable
      performance.
      
      More details about our choice of Speck can be found in our patches that
      added Speck to the crypto API, and the follow-on discussion threads.
      We're planning a publication that explains the choice in more detail.
      But briefly, we can't use ChaCha20 as we previously proposed, since it
      would be insecure to use a stream cipher in this context, with potential
      IV reuse during writes on f2fs and/or on wear-leveling flash storage.
      
      We also evaluated many other lightweight and/or ARX-based block ciphers
      such as Chaskey-LTS, RC5, LEA, CHAM, Threefish, RC6, NOEKEON, SPARX, and
      XTEA.  However, all had disadvantages vs. Speck, such as insufficient
      performance with NEON, much less published cryptanalysis, or an
      insufficient security level.  Various design choices in Speck make it
      perform better with NEON than competing ciphers while still having a
      security margin similar to AES, and in the case of Speck128 also the
      same available security levels.  Unfortunately, Speck does have some
      political baggage attached -- it's an NSA designed cipher, and was
      rejected from an ISO standard (though for context, as far as I know none
      of the above-mentioned alternatives are ISO standards either).
      Nevertheless, we believe it is a good solution to the problem from a
      technical perspective.
      
      Certain algorithms constructed from ChaCha or the ChaCha permutation,
      such as MEM (Masked Even-Mansour) or HPolyC, may also meet our
      performance requirements.  However, these are new constructions that
      need more time to receive the cryptographic review and acceptance needed
      to be confident in their security.  HPolyC hasn't been published yet,
      and we are concerned that MEM makes stronger assumptions about the
      underlying permutation than the ChaCha stream cipher does.  In contrast,
      the XTS mode of operation is relatively well accepted, and Speck has
      over 70 cryptanalysis papers.  Of course, these ChaCha-based algorithms
      can still be added later if they become ready.
      
      The best known attack on Speck128/256 is a differential cryptanalysis
      attack on 25 of 34 rounds with 2^253 time complexity and 2^125 chosen
      plaintexts, i.e. only marginally faster than brute force.  There is no
      known attack on the full 34 rounds.
      Signed-off-by: NEric Biggers <ebiggers@google.com>
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      12d28f79
  9. 08 5月, 2018 1 次提交
  10. 28 4月, 2018 1 次提交
  11. 25 4月, 2018 3 次提交
    • C
      ipconfig: Write NTP server IPs to /proc/net/ipconfig/ntp_servers · c04d2cb2
      Chris Novakovic 提交于
      Distributed filesystems are most effective when the server and client
      clocks are synchronised. Embedded devices often use NFS for their
      root filesystem but typically do not contain an RTC, so the clocks of
      the NFS server and the embedded device will be out-of-sync when the root
      filesystem is mounted (and may not be synchronised until late in the
      boot process).
      
      Extend ipconfig with the ability to export IP addresses of NTP servers
      it discovers to /proc/net/ipconfig/ntp_servers. They can be supplied as
      follows:
      
       - If ipconfig is configured manually via the "ip=" or "nfsaddrs="
         kernel command line parameters, one NTP server can be specified in
         the new "<ntp0-ip>" parameter.
       - If ipconfig is autoconfigured via DHCP, request DHCP option 42 in
         the DHCPDISCOVER message, and record the IP addresses of up to three
         NTP servers sent by the responding DHCP server in the subsequent
         DHCPOFFER message.
      
      ipconfig will only write the NTP server IP addresses it discovers to
      /proc/net/ipconfig/ntp_servers, one per line (in the order received from
      the DHCP server, if DHCP autoconfiguration is used); making use of these
      NTP servers is the responsibility of a user space process (e.g. an
      initrd/initram script that invokes an NTP client before mounting an NFS
      root filesystem).
      Signed-off-by: NChris Novakovic <chris@chrisn.me.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c04d2cb2
    • C
      ipconfig: Document /proc/net/pnp · 8b0b37c5
      Chris Novakovic 提交于
      Fully document the format used by the /proc/net/pnp file written by
      ipconfig, explain where its values originate from, and clarify that the
      tertiary name server IP and DNS domain name are only written to the file
      when autoconfiguration is used.
      Signed-off-by: NChris Novakovic <chris@chrisn.me.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8b0b37c5
    • C
      ipconfig: Document setting of NIS domain name · 660de409
      Chris Novakovic 提交于
      ic_do_bootp_ext() is responsible for parsing the "ip=" and "nfsaddrs="
      kernel parameters. If a "." character is found in parameter 4 (the
      client's hostname), everything before the first "." is used as the
      hostname, and everything after it is used as the NIS domain name (but
      not necessarily the DNS domain name).
      
      Document this behaviour in Documentation/filesystems/nfs/nfsroot.txt,
      as it is not made explicit.
      Signed-off-by: NChris Novakovic <chris@chrisn.me.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      660de409
  12. 17 4月, 2018 1 次提交
  13. 13 4月, 2018 1 次提交
  14. 12 4月, 2018 1 次提交
  15. 10 4月, 2018 1 次提交
    • D
      afs: Implement @sys substitution handling · 6f8880d8
      David Howells 提交于
      Implement the AFS feature by which @sys at the end of a pathname component
      may be substituted for one of a list of values, typically naming the
      operating system.  Up to 16 alternatives may be specified and these are
      tried in turn until one works.  Each network namespace has[*] a separate
      independent list.
      
      Upon creation of a new network namespace, the list of values is
      initialised[*] to a single OpenAFS-compatible string representing arch type
      plus "_linux26".  For example, on x86_64, the sysname is "amd64_linux26".
      
      [*] Or will, once network namespace support is finalised in kAFS.
      
      The list may be set by:
      
      	# for i in foo bar linux-x86_64; do echo $i; done >/proc/fs/afs/sysname
      
      for which separate writes to the same fd are amalgamated and applied on
      close.  The LF character may be used as a separator to specify multiple
      items in the same write() call.
      
      The list may be cleared by:
      
      	# echo >/proc/fs/afs/sysname
      
      and read by:
      
      	# cat /proc/fs/afs/sysname
      	foo
      	bar
      	linux-x86_64
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      6f8880d8
  16. 06 4月, 2018 1 次提交
  17. 05 4月, 2018 1 次提交
  18. 04 4月, 2018 2 次提交
    • D
      fscache: Attach the index key and aux data to the cookie · 402cb8dd
      David Howells 提交于
      Attach copies of the index key and auxiliary data to the fscache cookie so
      that:
      
       (1) The callbacks to the netfs for this stuff can be eliminated.  This
           can simplify things in the cache as the information is still
           available, even after the cache has relinquished the cookie.
      
       (2) Simplifies the locking requirements of accessing the information as we
           don't have to worry about the netfs object going away on us.
      
       (3) The cache can do lazy updating of the coherency information on disk.
           As long as the cache is flushed before reboot/poweroff, there's no
           need to update the coherency info on disk every time it changes.
      
       (4) Cookies can be hashed or put in a tree as the index key is easily
           available.  This allows:
      
           (a) Checks for duplicate cookies can be made at the top fscache layer
           	 rather than down in the bowels of the cache backend.
      
           (b) Caching can be added to a netfs object that has a cookie if the
           	 cache is brought online after the netfs object is allocated.
      
      A certain amount of space is made in the cookie for inline copies of the
      data, but if it won't fit there, extra memory will be allocated for it.
      
      The downside of this is that live cache operation requires more memory.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Acked-by: NAnna Schumaker <anna.schumaker@netapp.com>
      Tested-by: NSteve Dickson <steved@redhat.com>
      402cb8dd
    • M
      orangefs: document package install and xfstests procedure · dd098022
      Martin Brandenburg 提交于
      Unless one is working on the userspace code, there's no need to compile
      OrangeFS.  The package works just fine.
      
      (But leave the documentation for building from source since not everyone
      uses distributions which include the package.)
      
      Also document the process to run xfstests against OrangeFS.
      Signed-off-by: NMartin Brandenburg <martin@omnibond.com>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      dd098022
  19. 02 4月, 2018 4 次提交
  20. 21 3月, 2018 2 次提交
  21. 17 3月, 2018 2 次提交
  22. 13 3月, 2018 2 次提交
  23. 27 2月, 2018 2 次提交
  24. 06 2月, 2018 1 次提交
    • D
      afs: Support the AFS dynamic root · 4d673da1
      David Howells 提交于
      Support the AFS dynamic root which is a pseudo-volume that doesn't connect
      to any server resource, but rather is just a root directory that
      dynamically creates mountpoint directories where the name of such a
      directory is the name of the cell.
      
      Such a mount can be created thus:
      
      	mount -t afs none /afs -o dyn
      
      Dynamic root superblocks aren't shared except by bind mounts and
      propagation.  Cell root volumes can then be mounted by referring to them by
      name, e.g.:
      
      	ls /afs/grand.central.org/
      	ls /afs/.grand.central.org/
      
      The kernel will upcall to consult the DNS if the address wasn't supplied
      directly.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      4d673da1
  25. 28 1月, 2018 1 次提交
    • M
      powerpc/cell: Remove axonram driver · 1d65b1c8
      Michael Ellerman 提交于
      The QS21/22 IBM Cell blades had a southbridge chip called Axon. This
      could have DDR DIMMs attached to it, though they were not directly
      usable as RAM, instead they could be used as some sort of buffer, if
      applications were written specifically to use the block device
      provided by the driver.
      
      Although the driver supposedly had direct access support, it was
      apparently never tested (see commit 91117a20 ("axonram: Fix bug in
      direct_access")).
      
      These machines have not been available for over 5 years, and were
      never widely in use. It seems highly unlikely anyone is using this
      driver.
      
      In general we're happy to leave old drivers in the tree, but because
      DAX is involved this driver is caught up in the ongoing work in that
      area, but none of the DAX folks are able to test it.
      
      So remove the driver, if any one *is* using it, we'll be happy to put
      it back.
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      1d65b1c8
  26. 24 1月, 2018 2 次提交
    • A
      ovl: document NFS export · a01f64b5
      Amir Goldstein 提交于
      Document NFS export design.
      Followup patches will implement this design.
      Signed-off-by: NAmir Goldstein <amir73il@gmail.com>
      Signed-off-by: NMiklos Szeredi <mszeredi@redhat.com>
      a01f64b5
    • A
      ovl: add support for "nfs_export" configuration · f168f109
      Amir Goldstein 提交于
      Introduce the "nfs_export" config, module and mount options.
      
      The NFS export feature depends on the "index" feature and enables two
      implicit overlayfs features: "index_all" and "verify_lower".
      The "index_all" feature creates an index on copy up of every file and
      directory. The "verify_lower" feature uses the full index to detect
      overlay filesystems inconsistencies on lookup, like redirect from
      multiple upper dirs to the same lower dir.
      
      NFS export can be enabled for non-upper mount with no index. However,
      because lower layer redirects cannot be verified with the index, enabling
      NFS export support on an overlay with no upper layer requires turning off
      redirect follow (e.g. "redirect_dir=nofollow").
      
      The full index may incur some overhead on mount time, especially when
      verifying that lower directory file handles are not stale.
      
      NFS export support, full index and consistency verification will be
      implemented by following patches.
      Signed-off-by: NAmir Goldstein <amir73il@gmail.com>
      Signed-off-by: NMiklos Szeredi <mszeredi@redhat.com>
      f168f109