- T10 copy offload ie "ODX" (copy chunk, and "Duplicate Extents" ioctl
currently the only two server side copy mechanisms supported)
-b) improved sparse file support
+b) improved sparse file support (fiemap and SEEK_HOLE are implemented
- but additional features would be supportable by the protocol).
++ but additional features would be supportable by the protocol).
c) Directory entry caching relies on a 1 second timer, rather than
- using Directory Leases, currently only the root file handle is cached longer
+ using Directory Leases, currently only the root file handle is cached longer
d) quota support (needs minor kernel change since quota calls
- to make it to network filesystems or deviceless filesystems)
+ to make it to network filesystems or deviceless filesystems)
- e) Additional use cases can be optimized to use "compounding"
- (e.g. open/query/close and open/setinfo/close) to reduce the number
- of roundtrips to the server and improve performance. Various cases
- (stat, statfs, create, unlink, mkdir) already have been improved by
- using compounding but more can be done. In addition we could significantly
- reduce redundant opens by using deferred close (with handle caching leases)
- and better using reference counters on file handles.
-e) Additional use cases where we use "compoounding" (e.g. open/query/close
- and open/setinfo/close) to reduce the number of roundtrips, and also
- open to reduce redundant opens (using deferred close and reference counts
- more).
++e) Additional use cases can be optimized to use "compounding" (e.g.
++ open/query/close and open/setinfo/close) to reduce the number of
++ roundtrips to the server and improve performance. Various cases
++ (stat, statfs, create, unlink, mkdir) already have been improved by
++ using compounding but more can be done. In addition we could
++ significantly reduce redundant opens by using deferred close (with
++ handle caching leases) and better using reference counters on file
++ handles.
f) Finish inotify support so kde and gnome file list windows
- will autorefresh (partially complete by Asser). Needs minor kernel
- vfs change to support removing D_NOTIFY on a file.
+ will autorefresh (partially complete by Asser). Needs minor kernel
+ vfs change to support removing D_NOTIFY on a file.
g) Add GUI tool to configure /proc/fs/cifs settings and for display of
- the CIFS statistics (started)
+ the CIFS statistics (started)
h) implement support for security and trusted categories of xattrs
- (requires minor protocol extension) to enable better support for SELINUX
+ (requires minor protocol extension) to enable better support for SELINUX
i) Add support for tree connect contexts (see MS-SMB2) a new SMB3.1.1 protocol
feature (may be especially useful for virtualization).
j) Create UID mapping facility so server UIDs can be mapped on a per
- mount or a per server basis to client UIDs or nobody if no mapping
- exists. Also better integration with winbind for resolving SID owners
+ mount or a per server basis to client UIDs or nobody if no mapping
+ exists. Also better integration with winbind for resolving SID owners
k) Add tools to take advantage of more smb3 specific ioctls and features
- (passthrough ioctl/fsctl is now implemented in cifs.ko to allow sending
- various SMB3 fsctls and query info and set info calls directly from user space)
- Add tools to make setting various non-POSIX metadata attributes easier
- from tools (e.g. extending what was done in smb-info tool).
- (passthrough ioctl/fsctl for sending various SMB3 fsctls to the server
- is in progress, and a passthrough query_info call is already implemented
- in cifs.ko to allow smb3 info levels queries to be sent from userspace)
++ (passthrough ioctl/fsctl is now implemented in cifs.ko to allow
++ sending various SMB3 fsctls and query info and set info calls
++ directly from user space) Add tools to make setting various non-POSIX
++ metadata attributes easier from tools (e.g. extending what was done
++ in smb-info tool).
l) encrypted file support
m) improved stats gathering tools (perhaps integration with nfsometer?)
- to extend and make easier to use what is currently in /proc/fs/cifs/Stats
+ to extend and make easier to use what is currently in /proc/fs/cifs/Stats
-n) allow setting more NTFS/SMB3 file attributes remotely (currently limited to
- compressed file attribute via chflags) and improve user space tools for
- managing and viewing them.
+n) Add support for claims based ACLs ("DAC")
o) mount helper GUI (to simplify the various configuration options on mount)
r) updating cifs documentation, and user guide.
s) Addressing bugs found by running a broader set of xfstests in standard
- file system xfstest suite.
+ file system xfstest suite.
t) split cifs and smb3 support into separate modules so legacy (and less
- secure) CIFS dialect can be disabled in environments that don't need it
- and simplify the code.
+ secure) CIFS dialect can be disabled in environments that don't need it
+ and simplify the code.
v) POSIX Extensions for SMB3.1.1 (started, create and mkdir support added
- so far).
+ so far).
w) Add support for additional strong encryption types, and additional spnego
- authentication mechanisms (see MS-SMB2)
+ authentication mechanisms (see MS-SMB2)
- KNOWN BUGS
- ====================================
+x) Finish support for SMB3.1.1 compression
+
+ Known Bugs
+ ==========
+
See http://bugzilla.samba.org - search on product "CifsVFS" for
current bug list. Also check http://bugzilla.kernel.org (Product = File System, Component = CIFS)
u64 image_size; /* Effective Image size, little endian */
u64 flags; /* kernel flags, little endian */
u32 version; /* Version of this header */
- u32 res1 = 0; /* Reserved */
- u64 res2 = 0; /* Reserved */
+ u32 res1 = 0; /* Reserved */
+ u64 res2 = 0; /* Reserved */
u64 magic = 0x5643534952; /* Magic number, little endian, "RISCV" */
- u32 res3; /* Reserved for additional RISC-V specific header */
+ u32 magic2 = 0x56534905; /* Magic number 2, little endian, "RSC\x05" */
u32 res4; /* Reserved for PE COFF offset */
This header format is compliant with PE/COFF header and largely inspired from
code0 should be replaced with "MZ" magic string and res5(at offset 0x3c) should
point to the rest of the PE/COFF header.
- - version field indicate header version number.
- Bits 0:15 - Minor version
- Bits 16:31 - Major version
+ - version field indicate header version number
+
+ ========== =============
+ Bits 0:15 Minor version
+ Bits 16:31 Major version
+ ========== =============
This preserves compatibility across newer and older version of the header.
- The current version is defined as 0.1.
+ The current version is defined as 0.2.
-- res3 is reserved for offset to any other additional fields. This makes the
- header extendible in future. One example would be to accommodate ISA
- extension for RISC-V in future. For current version, it is set to be zero.
+- The "magic" field is deprecated as of version 0.2. In a future
+ release, it may be removed. This originally should have matched up
+ with the ARM64 header "magic" field, but unfortunately does not.
+ The "magic2" field replaces it, matching up with the ARM64 header.
-- In current header, the flag field has only one field.
+- In current header, the flags field has only one field.
- Bit 0: Kernel endianness. 1 if BE, 0 if LE.
+
+ ===== ====================================
+ Bit 0 Kernel endianness. 1 if BE, 0 if LE.
+ ===== ====================================
- Image size is mandatory for boot loader to load kernel image. Booting will
fail otherwise.