Re: vfat for 2.1.45

Michael Harnois (mharnois@sbt.net)
20 Jul 1997 15:43:02 -0500


I was reminded that I failed to post the necessary diff to
msdos_fs.h. It follows below.

AFAIK the status of this driver currently is as follows:

Copying from vfat to another drive works. Copying over an existing
file on the vfat drive works. Creating a new file on the vfat drive
does not.

Deleting a file causes it to no longer appear in a directory
listing. However it does not go away; i.e. if I do less <filename> the
file displays. Also, copying another file to the file of that name
works, i.e. the file is copied, but the previously deleted directory
entry does not reappear.

I have hacked on this for three days, but I just don't know enough
about it to fix it. Help would be *greatly* appreciated.

--- msdos_fs.h.orig Sat Jul 19 13:57:43 1997
+++ msdos_fs.h Sun Jul 20 02:24:52 1997
@@ -266,19 +266,17 @@
extern int init_fat_fs(void);

/* vfat/namei.c - these are for dmsdos */
-extern int vfat_create(struct inode *dir,const char *name,int len,int mode,
- struct inode **result);
-extern int vfat_unlink(struct inode *dir,const char *name,int len);
-extern int vfat_mkdir(struct inode *dir,const char *name,int len,int mode);
-extern int vfat_rmdir(struct inode *dir,const char *name,int len);
-extern int vfat_rename(struct inode *old_dir,const char *old_name,int old_len,
- struct inode *new_dir,const char *new_name,int new_len);
+extern int vfat_create(struct inode *dir,struct dentry *dentry, int mode);
+extern int vfat_unlink(struct inode *dir,struct dentry *dentry);
+extern int vfat_mkdir(struct inode *dir,struct dentry *dentry, int mode);
+extern int vfat_rmdir(struct inode *dir, struct dentry *dentry);
+extern int vfat_rename(struct inode *old_dir,struct dentry *old_dentry,
+ struct inode *new_dir,struct dentry *new_dentry);
extern void vfat_put_super(struct super_block *sb);
extern struct super_block *vfat_read_super(struct super_block *sb,void *data,
int silent);
extern void vfat_read_inode(struct inode *inode);
-extern int vfat_lookup(struct inode *dir,const char *name,int len,
- struct inode **result);
+extern int vfat_lookup(struct inode *dir,struct dentry *dentry);

#endif /* __KERNEL__ */

-- 
 Michael D. Harnois, Redeemer Lutheran Church, Washburn, IA
 mharnois@sbt.net  aa0bt@aa0bt.ampr.org
 "Few sinners are saved after the first 20 minutes of 
  a sermon."  --Mark Twain