patch-2.1.90 linux/fs/umsdos/inode.c
Next file: linux/fs/umsdos/namei.c
Previous file: linux/fs/umsdos/emd.c
Back to the patch index
Back to the overall index
- Lines: 95
- Date:
Tue Mar 17 21:32:17 1998
- Orig file:
v2.1.89/linux/fs/umsdos/inode.c
- Orig date:
Mon Feb 23 18:12:11 1998
diff -u --recursive --new-file v2.1.89/linux/fs/umsdos/inode.c linux/fs/umsdos/inode.c
@@ -105,7 +105,7 @@
inode->i_op = &umsdos_dir_inode_operations;
}
- iput (emd_dir);
+/* iput (emd_dir); FIXME /mn/ ! */
}
}
@@ -119,9 +119,10 @@
off_t f_pos)
{
struct inode *emd_owner;
- /* FIXME, I don't have a clue on this one */
- Printk ((KERN_WARNING "umsdos_set_dirinfo: /mn/ FIXME: no clue\n"));
+ /* FIXME, I don't have a clue on this one - /mn/ hmmm ? ok ? */
+/* Printk ((KERN_WARNING "umsdos_set_dirinfo: /mn/ FIXME: no clue. inode=%lu dir=%lu\n", inode->i_ino, dir->i_ino));*/
emd_owner = umsdos_emd_dir_lookup(dir,1);
+ Printk (("umsdos_set_dirinfo: emd_owner is %lu for dir %lu\n", emd_owner->i_ino, dir->i_ino));
inode->u.umsdos_i.i_dir_owner = dir->i_ino;
inode->u.umsdos_i.i_emd_owner = emd_owner->i_ino;
iput (emd_owner);
@@ -317,10 +318,10 @@
/* FIXME inode->i_dirt = 0; */
}
-int UMSDOS_notify_change(struct dentry *dentry, struct iattr *attr)
+
+int internal_notify_change(struct inode *inode, struct iattr *attr)
{
int ret = 0;
- struct inode *inode = dentry->d_inode;
Printk ((KERN_ERR "UMSDOS_notify_change: /mn/ completly untested\n"));
@@ -362,10 +363,15 @@
}else{
struct file filp;
struct umsdos_dirent entry;
+ struct dentry *emd_dentry;
loff_t offs;
- offs = 0;
+
+ emd_dentry = creat_dentry ("notify_emd", 10, emd_owner);
+ fill_new_filp (&filp, emd_dentry);
+
filp.f_pos = inode->u.umsdos_i.pos;
filp.f_reada = 0;
+ offs = filp.f_pos; /* FIXME: /mn/ is this ok ? */
Printk (("pos = %Lu ", filp.f_pos));
/* Read only the start of the entry since we don't touch */
/* the name */
@@ -386,7 +392,7 @@
entry.nlink = inode->i_nlink;
filp.f_pos = inode->u.umsdos_i.pos;
- offs = 0; /* FIXME */
+ offs = filp.f_pos; /* FIXME: /mn/ is this ok ? */
ret = umsdos_emd_dir_write (emd_owner, &filp, (char*)&entry, UMSDOS_REC_SIZE, &offs);
Printk (("notify pos %lu ret %d nlink %d "
@@ -407,6 +413,15 @@
return ret;
}
+
+int UMSDOS_notify_change(struct dentry *dentry, struct iattr *attr)
+{
+ return internal_notify_change (dentry->d_inode, attr);
+}
+
+
+
+
/* #Specification: function name / convention
A simple convention for function name has been used in
the UMSDOS file system. First all function use the prefix
@@ -457,7 +472,7 @@
PRINTK ((KERN_DEBUG "UMSDOS /mn/: sb = %p\n",sb));
res = msdos_read_super(sb,data,silent);
PRINTK ((KERN_DEBUG "UMSDOS /mn/: res = %p\n",res));
- printk (KERN_INFO "UMSDOS dentry-WIP-Beta 0.82-1 (compatibility level %d.%d, fast msdos)\n", UMSDOS_VERSION, UMSDOS_RELEASE);
+ printk (KERN_INFO "UMSDOS dentry-WIP-Beta 0.82-2 (compatibility level %d.%d, fast msdos)\n", UMSDOS_VERSION, UMSDOS_RELEASE);
if (res == NULL) { MOD_DEC_USE_COUNT; return NULL; }
@@ -504,7 +519,7 @@
The word "linux" is hardcoded in /usr/include/linux/umsdos_fs.h
in the macro UMSDOS_PSDROOT_NAME.
*/
- struct dentry *root, *etc, *etc_rc, *init, *sbin; /* FIXME */
+ struct dentry *root, *etc, *etc_rc, *init, *sbin;
root = creat_dentry (UMSDOS_PSDROOT_NAME, strlen(UMSDOS_PSDROOT_NAME), NULL);
sbin = creat_dentry ("sbin", 4, NULL);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov