[Libsysio-commit] unification: libsysio/drivers/incore fs_incore.c
Brought to you by:
lward
From: Lee W. <lw...@us...> - 2007-04-12 17:00:59
|
Update of /cvsroot/libsysio/libsysio/drivers/incore In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv32364 Modified Files: Tag: unification fs_incore.c Log Message: Need to provide a lookup for files as well now. The _sysio_p_find_alias routine will try to validate them. Previously, we just forwarded to the library-supplied illop() routine. Which resulted in a nice abort. Index: fs_incore.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/drivers/incore/fs_incore.c,v retrieving revision 1.24 retrieving revision 1.24.4.1 diff -u -w -b -B -p -r1.24 -r1.24.4.1 --- fs_incore.c 4 Aug 2005 20:17:09 -0000 1.24 +++ fs_incore.c 12 Apr 2007 17:00:55 -0000 1.24.4.1 @@ -212,11 +212,10 @@ static struct inode_ops _sysio_incore_di _sysio_incore_inop_gone }; -#define _sysio_incore_filop_lookup \ - (int (*)(struct pnode *, \ - struct inode **, \ - struct intent *, \ - const char *))_sysio_do_illop +static int _sysio_incore_filop_lookup(struct pnode *pno, + struct inode **inop, + struct intent *intnt, + const char *path); #define _sysio_incore_filop_filldirentries \ (ssize_t (*)(struct inode *, \ _SYSIO_OFF_T *, \ @@ -866,6 +865,26 @@ out: } static int +_sysio_incore_filop_lookup(struct pnode *pno __IS_UNUSED, + struct inode **inop, + struct intent *intnt __IS_UNUSED, + const char *path __IS_UNUSED) +{ + struct incore_inode *icino; + + /* + * We revalidate only. + */ + if (!*inop) + return -ENOTDIR; + + icino = I2IC(*inop); + assert(icino); + (*inop)->i_stbuf = icino->ici_st; + return 0; +} + +static int _sysio_incore_inop_getattr(struct pnode *pno, struct inode *ino, struct intnl_stat *stbuf) |