]> git.michaelhowe.org Git - packages/o/openafs.git/commit
DEVEL15-windows-cm_ioctl_query_opts-20080115
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 16 Jan 2008 03:19:51 +0000 (03:19 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 16 Jan 2008 03:19:51 +0000 (03:19 +0000)
commit04c9a3436c74e325cd3c49d72f3ee5f45934f6d7
tree9b663d3c07a615542fe8334fbf3215fb495feb6a
parent36ece4c442490bb3f4591fe193440b73b9988d6b
DEVEL15-windows-cm_ioctl_query_opts-20080115

LICENSE MIT

The path ioctl operations have several issues:

(1) the specified path for "fs examine, whereis, whichcell, flush" and so
    always has the follow symlinks and mount points semantics.  This makes
    it impossible to determine what the FID of a symlink or mount point is.

(2) "fs examine" out is not the result of a single pioctl operation but is
    actually the combined output of half a dozen operations.  Path evaluation
    is an expensive operation.  It would be faster if the caller could
    evaluate the FID first and then perform all of the rest of the operations
    by specifying the FID instead of the path.

(3) fs output reports all objects as files.  By adding a GetFileType
    pioctl more informative output can be provided that indicates what
    type of object the path evaluates to.

(4) the Windows fs command includes a number of commands that do nothing
    but exist only because the Unix cache manager supports them.

This delta adds a new extendible data structure cm_ioctl_query_opts_t which
can be optionally specified with pioctls that do not already require
input data.  The first two fields of this structure are 'literal' and
'fid'.  The literal field is used to indicate whether the last component
of the path should be evaluated following symlinks and mount points.
The fid field permits a fid to be specified.

A new GetFileType pioctl has been added. The type of objects are now
output.

A new "-literal" option is available for "fs examine, flush, whereis, and
whichcell.

Unimplemented fs commands have been removed.

(cherry picked from commit 88e915d8f976898e75a6afe8bc7b6d7c33b8a121)
src/WINNT/afsd/afsd_init.c
src/WINNT/afsd/cm_ioctl.c
src/WINNT/afsd/cm_ioctl.h
src/WINNT/afsd/fs.c
src/WINNT/afsd/smb_iocons.h
src/WINNT/afsd/smb_ioctl.c