PERFORCE change 144705 for review

Edward Tomasz Napierala trasz at FreeBSD.org
Sat Jul 5 11:52:52 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=144705

Change 144705 by trasz at trasz_traszkan on 2008/07/05 11:52:39

	Update TODO.

Affected files ...

.. //depot/projects/soc2008/trasz_nfs4acl/TODO#2 edit

Differences ...

==== //depot/projects/soc2008/trasz_nfs4acl/TODO#2 (text+ko) ====

@@ -1,62 +1,28 @@
 Things to do, in no particular order:
 
-Compatibility
-=============
+- Add the ability to remove ACE by number to setfacl(1),
 
-- Create 'struct acl_old' and related types as a copy of 'struct acl'
-  and related types.  Replace all occurences of 'struct acl' with 'struct
-  acl_old'.
+- Add the ability to add ACE at a given position in ACL to setfacl(1),
 
-- Extend 'struct acl' and related types as needed for NFSv4 ACLs.
+- Change acl_{get,set}_flags_np into Darwin-compatible calls:
 
-- Write code to translate between 'struct acl' and 'struct acl_old'.
+  int      acl_add_flag_np(acl_flagset_t flagset_d, acl_flag_t flag);
+  int      acl_clear_flags_np(acl_flagset_t flagset_d);
+  int      acl_delete_flag_np(acl_flagset_t flagset_d, acl_flag_t flag);
+  int      acl_get_flag_np(acl_flagset_t flagset_d, acl_flag_t flag);
+  int      acl_get_flagset_np(void *obj_p, acl_flagset_t *flagset_p);
+  int      acl_set_flagset_np(void *obj_p, acl_flagset_t flagset_d);
 
-- Add acl_whatever_flag_np routines to the libc.
+- Find out what to do with chmod(1).  Right now, "chmod 600" on file
+  which already has mode 0600 does not call chmod(2) at all - and it
+  should, as it might cause ACL recomputation.
 
-- Move ACL-related VOPs from using 'acl_old' to 'acl' for both interfacing
-  with the upper layers and on-disk storage.
+- Make access control more granular.
 
-- Add new set of ACL syscalls.  Break out common code into separate routines
-  and implement syscalls for both new and old API as wrappers around
-  that - for example, for new API, the syscall will copyin and call the common
-  routine; for old API the syscall will copyin, translate and call the common
-  routine.
+- Attach ZFS to the framework.
 
-- Find out how symbol versioning works.  Use it to create backward compatible
-  API - wrap old API around new one, using translation routines described above.
+- Write code to do the same operations on UFS and ZFS and compare results.
 
-Actual implementation
-=====================
-
-- Find out how interaction between "legacy" UNIX permissions (rwxrwxrwx)
-  and NFSv4 ACLs works in SunOS.
-
-- Find out how interaction between "legacy" UNIX permissions (rwxrwxrwx)
-  and NFSv4 ACLs works in Darwin.
-
-- Decide on the command line tools user interface.
-
-- Implement parser for the new ACL type.
-
-- Implement printer for the new ACL type.
-
-- Add mount flag (nfs4acls?), mutually exclusive with 'acls', to turn on new ACLs.  
-
-- Add some mock-up code to kern/subr_acl_nfs4.c.
-
-- Extend stuff from ufs/ufs/ufs_acl.c to call that code for NFSv4 ACLs.  At this point
-  I should be able to test if storing and retrieving works as it should, for both new
-  (struct acl) and old (struct acl_old) on-disk layout.
-
-- Replace the mock-up with actual implementation.  ;-)
-  (XXX: This deserves for a longer description.)
-
-Testing
-=======
-
-- Find out if there is any existing tool to test this.
-
-- Find out what functionality is needed for regression tests.
-
-- Implement.
+- Write library that implements SunOS acl(2)/facl(2) as wrappers around
+  __acl_whatever syscalls.  Use it in Samba.
 


More information about the p4-projects mailing list