Messages in this thread | | | Date | Sun, 17 Jan 1999 13:34:21 -0400 | From | "Garst R. Reese" <> | Subject | Re: pre8, modules, vfat.o unresolved symbol(s) |
| |
Hello again Al. Your patch still has some problems. One is an obvious extra ; in dcache.h, but fixing that leaves warnings abour return type defaulting to int and control reaches end of non-void function. See below: Alexander Viro wrote: > > On Fri, 15 Jan 1999, Garst R. Reese wrote: > > > Thats about it. > Yes. You could mention which symbols those were, but anyway. > d_invalidate(). Yes, it's what we need but it is not exported. > > Linus, I'm putting it to ksyms.c, but it might feel better in > dcache.h (inlined && less stuff in export list). Up to you. IMHO the less > things we export the less chances that a driver written by Foobar Bogonics > will bite us in the next year when we'll remove/redo something. > > --- linux/fs/vfat/namei.c.old Fri Jan 15 02:46:34 1999 > +++ linux/fs/vfat/namei.c Fri Jan 15 03:02:38 1999 > @@ -1726,6 +1726,13 @@ > } > > if (res >= 0) { > + if (new_inode) { > + /* probably we should do it only for directories, > + * but that would require lambda-expanding the > + * call of vfat_unlink(). FIXME. > + */ > + d_rehash(new_dentry); > + } > d_move(old_dentry, new_dentry); > res = 0; > } > --- linux/fs/dcache.c.old Fri Jan 15 02:52:32 1999 > +++ linux/fs/dcache.c Fri Jan 15 02:54:07 1999 > @@ -677,12 +677,11 @@ > d_drop(dentry); > } > > -void d_add(struct dentry * entry, struct inode * inode) > +void d_rehash(struct dentry * entry) > { > struct dentry * parent = entry->d_parent; > > list_add(&entry->d_hash, d_hash(parent, entry->d_name.hash)); > - d_instantiate(entry, inode); > } > > #define do_switch(x,y) do { \ > --- linux/kernel/ksyms.c.old Fri Jan 15 02:54:45 1999 > +++ linux/kernel/ksyms.c Fri Jan 15 02:55:00 1999 > @@ -121,7 +121,8 @@ > EXPORT_SYMBOL(d_alloc_root); > EXPORT_SYMBOL(d_delete); > EXPORT_SYMBOL(d_validate); > -EXPORT_SYMBOL(d_add); > +EXPORT_SYMBOL(d_rehash); > +EXPORT_SYMBOL(d_invalidate); /* May be it will be better in dcache.h? */ > EXPORT_SYMBOL(d_move); > EXPORT_SYMBOL(d_instantiate); > EXPORT_SYMBOL(d_alloc); > --- linux/include/linux/dcache.h.old Fri Jan 15 02:55:11 1999 > +++ linux/include/linux/dcache.h Fri Jan 15 02:58:05 1999 > @@ -150,10 +150,18 @@ > extern int is_root_busy(struct dentry *); > > /* > + * This adds the entry to the hash queues. > + */ > +extern void d_rehash(struct dentry * entry); > +/* > * This adds the entry to the hash queues and initializes "d_inode". > * The entry was actually filled in earlier during "d_alloc()" > */ > -extern void d_add(struct dentry * entry, struct inode * inode); PROBLEM STARTS HERE: > +static __inline__ d_add(struct dentry * entry, struct inode * inode);
> +{ > + d_rehash(entry); > + d_instantiate(entry, inode); > +} DID YOU MEAN TO RETURN ANYTHING? > /* used for rename() and baskets */ > extern void d_move(struct dentry * entry, struct dentry * newdentry);
-- Thanks, Garst
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |