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)
|