patch-2.1.90 linux/fs/umsdos/README-WIP.txt

Next file: linux/fs/umsdos/dir.c
Previous file: linux/fs/super.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.89/linux/fs/umsdos/README-WIP.txt linux/fs/umsdos/README-WIP.txt
@@ -32,34 +32,42 @@
 - long file names - works
 - read file - works
 - switching MSDOS/UMSDOS - works?
-- switching UMSDOS/MSDOS - untested
-- pseudo root things - commented out mostly currently. To be fixed when
+- switching UMSDOS/MSDOS - UNTESTED
+- pseudo root things - COMMENTED OUT mostly currently. To be fixed when
   dentries stuff is straightened out.
 - resolve symlink - seems to work fully now!
 - dereference symlink - seems to work fully now!
 - hard links - seems to work now
 - special files (block/char device, fifos, sockets...) - seems to work ok.
-- other ioctls - mostly untested
+- other ioctls - MOSTLY UNTESTED
 - dangling symlink - UNTESTED !
 
-- create symlink		- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- create hardlink		- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- create file			- creates, but corrupts. after reboot seem ok ?
-- create special file		- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- write to file			- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- rename file (same dir)	- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- rename file (dif. dir)	- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- rename dir (same dir)		- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- rename dir (dif. dir)		- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- delete file			- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- delete hardlink		- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- mkdir				- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- rmdir 			- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
-- umssyncing			- WARNING: NONE OF WRITE OPERATIONS FIXED YET!
+- create symlink		- works on short names, but fails (gets
+				  truncated on long ones) (also
+				  due to some dentries problems, it may not
+				  be visible right away always - eg. before
+				  umount/mount)
+- create hardlink		- WARNING: NOT FIXED YET!
+- create file			- creates short names, but probs with long ones ?
+- create special file		- seems to work on short names.
+- write to file			- seems to work on short names.
+- rename file (same dir)	- WARNING: NOT FIXED YET!
+- rename file (dif. dir)	- WARNING: NOT FIXED YET!
+- rename dir (same dir)		- WARNING: NOT FIXED YET!
+- rename dir (dif. dir)		- WARNING: NOT FIXED YET!
+- delete file			- WARNING: NOT FIXED YET!
+- notify_change (chown,perms)	- seems to work!
+- delete hardlink		- WARNING: NOT FIXED YET!
+- mkdir				- seems to work, even with long names ! (but
+				  due to some dentries problems, it may not
+				  be visible right away always - eg. before
+				  umount/mount)
+- rmdir 			- WARNING: NOT FIXED YET!
+- umssyncing			- does something :-), but NEEDS EXTENSIVE TESTING
 
 Notes: moderate dentry/inode kernel structures trashing. Probably some other
 kernel structures compromised. Have SysRq support compiled in, and use
-Sync/Emergency-remount-RO. And don't try mounting read/write yet - and then
+Sync/Emergency-remount-RO. And if you don't try mounting read/write -
 you should have no big problems...
 
 Notes2: kernel structures trashing seems to be _MUCH_ lower if no
@@ -69,6 +77,17 @@
 is supposed to be fixed enough to work, but I haven't got the time to test
 it.
 
+Note4: on failure of creating of long filenames: MSDOS filename gets
+created, and EMD entry gets created. Check: either they mismatch, or EMD
+entry contains some wrong flags.
+
+Note5: rmdir(2) probably fails because do_rmdir calls lock_parent, which
+uses dentry->d_parent, which we neglect to set, so it returns -ENOENT.
+Probably same problem on unlink(2) ? What to do ? How to set
+dentry->d_parent to something useful ?? Must I recurse down whole pathname
+and set one by one all directory components ?! or only last one is really
+needed ? help !
+
 ------------------------------------------------------------------------------
 
 Some general notes:
@@ -85,7 +104,7 @@
 'reboot/set_environment' component that now occures every few cycles.
 
 But I need some help from someone knowing about dentries/inodes use more
-than I. If you can help, please contact me... I'm mostly worries about
+than I. If you can help, please contact me... I'm mostly worried about
 iget/iput and dget/dput, and deallocating temporary dentries we create.
 should we destroy temp dentries ? using d_invalidate ? using d_drop ? just
 dput them ?
@@ -96,9 +115,9 @@
 message. You can try mnalis@open.hr or mnalis@voyager.hr; however
 mnalis@jagor.srce.hr is preferable one.
 
-------------------------------------------------------------------------------
 
-some of my notes for myself:
+------------------------------------------------------------------------------
+some of my notes for myself /mn/:
 
 + hardlinks/symlinks. test with files in not_the_same_dir
 - also test not_the_same_dir for other file operations like rename etc.
@@ -108,3 +127,17 @@
 - what about .dotfiles ? working ? multiple dots ? etc....
 - fix stuff like dir->i_count++ to atomic_inc(&dir->i_count) and simular?
 
+
+- umsdos_create_any - calling msdos_create will create dentry for shor name. Hmmmm..?
+- kill_dentry - put it where is needed. Also dput() at needed places.
+
+- when should dput()/iput() be used ?!!
+
+- probably problem with filename mangling somewhere, since both create and
+  write to file work on short filenames, but fail on long ones. Path
+  components may be of any size (eg. mkfifo /mnt/Very_long_dir2/blah1 will
+  succeed, but mkfifo /mnt/very_long_filename.txt won't)
+
+
+- what is dir->i_count++ ? locking directory ? should this be lock_parent or
+something ?

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov