Thread: [Libsysio-commit] HEAD: libsysio/include dev.h inode.h
Brought to you by:
lward
From: Lee W. <lw...@us...> - 2004-04-16 20:38:43
|
Update of /cvsroot/libsysio/libsysio/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30430/include Modified Files: dev.h inode.h Log Message: New operation for the drivers to implement -- take note! The drivers now need to implement inop_pos which takes an inode and a _SYSIO_OFF_T and should return the resulting position as though it were lseek(FD2INO(fd), off, SEEK_SET). As usual a negative return value is the negated errno. Lseek is altered to use this. Changes in fs_native.c to utilize pread/pwrite whenever positioning is required instead of an lseek/io-op pair of calls. This addresses a race to yod. Index: dev.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/dev.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -w -b -B -p -r1.6 -r1.7 --- dev.h 6 Feb 2004 20:07:29 -0000 1.6 +++ dev.h 16 Apr 2004 20:38:34 -0000 1.7 @@ -70,77 +70,79 @@ extern const struct inode_ops _sysio_nod (int (*)(struct pnode *, \ struct inode **, \ struct intent *, \ - const char *))_sysio_dev_illop + const char *))_sysio_do_illop #define _sysio_nodev_inop_getattr \ (int (*)(struct pnode *, \ struct inode *, \ - struct intnl_stat *))_sysio_dev_illop + struct intnl_stat *))_sysio_do_ebadf #define _sysio_nodev_inop_setattr \ (int (*)(struct pnode *, \ struct inode *, \ unsigned , \ - struct intnl_stat *))_sysio_dev_illop + struct intnl_stat *))_sysio_do_ebadf #define _sysio_nodev_getdirentries \ (ssize_t (*)(struct inode *, \ char *, \ size_t , \ - _SYSIO_OFF_T *))_sysio_dev_illop + _SYSIO_OFF_T *))_sysio_do_illop #define _sysio_nodev_inop_mkdir \ (int (*)(struct pnode *, \ - mode_t))_sysio_dev_illop + mode_t))_sysio_do_illop #define _sysio_nodev_inop_rmdir \ - (int (*)(struct pnode *))_sysio_dev_illop + (int (*)(struct pnode *))_sysio_do_illop #define _sysio_nodev_inop_symlink \ (int (*)(struct pnode *, \ - const char *))_sysio_dev_illop + const char *))_sysio_do_illop #define _sysio_nodev_inop_readlink \ (int (*)(struct pnode *, \ char *, \ - size_t))_sysio_dev_illop + size_t))_sysio_do_illop #define _sysio_nodev_inop_open \ (int (*)(struct pnode *, \ int, \ - mode_t))_sysio_dev_illop + mode_t))_sysio_do_enoent #define _sysio_nodev_inop_close \ - (int (*)(struct inode *))_sysio_dev_illop + (int (*)(struct inode *))_sysio_do_ebadf #define _sysio_nodev_inop_link \ - (int (*)(struct pnode *, struct pnode *))_sysio_dev_illop + (int (*)(struct pnode *, struct pnode *))_sysio_do_illop #define _sysio_nodev_inop_unlink \ - (int (*)(struct pnode *))_sysio_dev_illop + (int (*)(struct pnode *))_sysio_do_illop #define _sysio_nodev_inop_rename \ - (int (*)(struct pnode *, struct pnode *))_sysio_dev_illop + (int (*)(struct pnode *, struct pnode *))_sysio_do_illop #define _sysio_nodev_inop_read \ (int (*)(struct inode *, \ - struct ioctx *))_sysio_dev_illop + struct ioctx *))_sysio_do_ebadf #define _sysio_nodev_inop_write \ (int (*)(struct inode *, \ - struct ioctx *))_sysio_dev_illop + struct ioctx *))_sysio_do_ebadf +#define _sysio_nodev_inop_pos \ + (_SYSIO_OFF_T (*)(struct inode *, _SYSIO_OFF_T))_sysio_do_ebadf #define _sysio_nodev_inop_iodone \ - (int (*)(struct ioctx *))_sysio_dev_illop + (int (*)(struct ioctx *))_sysio_do_einval #define _sysio_nodev_inop_fcntl \ (int (*)(struct inode *, \ int, \ - va_list))_sysio_dev_illop + va_list))_sysio_do_ebadf #define _sysio_nodev_inop_sync \ - (int (*)(struct inode *))_sysio_dev_illop + (int (*)(struct inode *))_sysio_do_ebadf #define _sysio_nodev_inop_datasync \ - (int (*)(struct inode *))_sysio_dev_illop + (int (*)(struct inode *))_sysio_do_ebadf #define _sysio_nodev_inop_ioctl \ (int (*)(struct inode *, \ unsigned long int, \ - va_list))_sysio_dev_illop + va_list))_sysio_do_ebadf #define _sysio_nodev_inop_mknod \ (int (*)(struct pnode *, \ mode_t, \ - dev_t))_sysio_dev_illop + dev_t))_sysio_do_illop #ifdef _HAVE_STATVFS #define _sysio_nodev_inop_statvfs \ (int (*)(struct pnode *, \ struct inode *, \ - struct intnl_statvfs *))_sysio_dev_illop + struct intnl_statvfs *))_sysio_do_illop #endif #define _sysio_nodev_inop_gone \ - (void (*)(struct inode *ino))_sysio_dev_noop + (void (*)(struct inode *ino))_sysio_do_noop extern int _sysio_dev_init(void); extern dev_t _sysio_dev_alloc(void); @@ -148,5 +150,3 @@ extern struct inode_ops *_sysio_dev_look extern int _sysio_char_dev_register(int major, const char *name, struct inode_ops *ops); -extern int _sysio_dev_illop(void); -extern void _sysio_dev_noop(void); Index: inode.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/inode.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -w -b -B -p -r1.15 -r1.16 --- inode.h 14 Feb 2004 19:42:58 -0000 1.15 +++ inode.h 16 Apr 2004 20:38:34 -0000 1.16 @@ -101,6 +101,7 @@ struct inode_ops { int (*inop_rename)(struct pnode *old, struct pnode *new); int (*inop_read)(struct inode *ino, struct ioctx *ioctx); int (*inop_write)(struct inode *ino, struct ioctx *ioctx); + _SYSIO_OFF_T (*inop_pos)(struct inode *ino, _SYSIO_OFF_T off); int (*inop_iodone)(struct ioctx *iocp); int (*inop_fcntl)(struct inode *ino, int cmd, va_list ap); int (*inop_sync)(struct inode *ino); @@ -453,6 +454,14 @@ extern int _sysio_setattr(struct pnode * struct inode *ino, unsigned mask, struct intnl_stat *stbuf); +extern void _sysio_do_noop(void); +extern void _sysio_do_illop(void); +extern int _sysio_do_ebadf(void); +extern int _sysio_do_einval(void); +extern int _sysio_do_enoent(void); +extern int _sysio_do_espipe(void); +extern int _sysio_do_eisdir(void); +extern int _sysio_do_enosys(void); extern int _sysio_path_walk(struct pnode *parent, struct nameidata *nd); #ifdef AUTOMOUNT_FILE_NAME extern void _sysio_next_component(const char *path, struct qstr *name); |
From: Sonja T. <so...@us...> - 2004-07-21 21:22:33
|
Update of /cvsroot/libsysio/libsysio/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv514/include Modified Files: dev.h inode.h Log Message: Fixing bugs to do with device files. Now, you cant open devices that do not have an associated driver. Also, you can now do an fstat() on a device Index: dev.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/dev.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -b -B -p -r1.7 -r1.8 --- dev.h 16 Apr 2004 20:38:34 -0000 1.7 +++ dev.h 21 Jul 2004 21:22:24 -0000 1.8 @@ -100,7 +100,7 @@ extern const struct inode_ops _sysio_nod #define _sysio_nodev_inop_open \ (int (*)(struct pnode *, \ int, \ - mode_t))_sysio_do_enoent + mode_t))_sysio_do_enodev #define _sysio_nodev_inop_close \ (int (*)(struct inode *))_sysio_do_ebadf #define _sysio_nodev_inop_link \ Index: inode.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/inode.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -w -b -B -p -r1.18 -r1.19 --- inode.h 28 May 2004 12:48:26 -0000 1.18 +++ inode.h 21 Jul 2004 21:22:24 -0000 1.19 @@ -460,6 +460,7 @@ extern void _sysio_do_illop(void); extern int _sysio_do_ebadf(void); extern int _sysio_do_einval(void); extern int _sysio_do_enoent(void); +extern int _sysio_do_enodev(void); extern int _sysio_do_espipe(void); extern int _sysio_do_eisdir(void); extern int _sysio_do_enosys(void); |
From: Ruth K. <rk...@us...> - 2004-07-26 16:38:11
|
Update of /cvsroot/libsysio/libsysio/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10551/include Modified Files: dev.h inode.h Log Message: fcntl fixes: fcntl may return a positive or negative value. Driver function interfaces have been changed to accomodate a returned system call value in the arguments. The return value of the driver functions is 0 for success and -errno for failure. Index: dev.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/dev.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -w -b -B -p -r1.8 -r1.9 --- dev.h 21 Jul 2004 21:22:24 -0000 1.8 +++ dev.h 26 Jul 2004 16:38:01 -0000 1.9 @@ -122,7 +122,8 @@ extern const struct inode_ops _sysio_nod #define _sysio_nodev_inop_fcntl \ (int (*)(struct inode *, \ int, \ - va_list))_sysio_do_ebadf + va_list, \ + int *))_sysio_do_ebadf #define _sysio_nodev_inop_sync \ (int (*)(struct inode *))_sysio_do_ebadf #define _sysio_nodev_inop_datasync \ Index: inode.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/inode.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -w -b -B -p -r1.19 -r1.20 --- inode.h 21 Jul 2004 21:22:24 -0000 1.19 +++ inode.h 26 Jul 2004 16:38:01 -0000 1.20 @@ -103,7 +103,7 @@ struct inode_ops { int (*inop_write)(struct inode *ino, struct ioctx *ioctx); _SYSIO_OFF_T (*inop_pos)(struct inode *ino, _SYSIO_OFF_T off); int (*inop_iodone)(struct ioctx *iocp); - int (*inop_fcntl)(struct inode *ino, int cmd, va_list ap); + int (*inop_fcntl)(struct inode *ino, int cmd, va_list ap, int *rtn); int (*inop_sync)(struct inode *ino); int (*inop_datasync)(struct inode *ino); int (*inop_ioctl)(struct inode *ino, unsigned long int request, va_list ap); |
From: Lee W. <lw...@us...> - 2005-08-04 20:17:19
|
Update of /cvsroot/libsysio/libsysio/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4518/include Modified Files: dev.h inode.h Log Message: Removed the internal getdirentries inode operation. The getdirentries function does not return the *next* block in it's basep argument. It simply return the cookie for the current block. We needed one that returns the *next*, so a new interface called filldirentries is present with this change. It takes, as it's second argument, a pointer to a value/result pair. The value should be set to the position to be read. The result is the position of the next block. All the included drivers have been updated. External drivers will require similar updates. Index: dev.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/dev.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -w -b -B -p -r1.9 -r1.10 --- dev.h 26 Jul 2004 16:38:01 -0000 1.9 +++ dev.h 4 Aug 2005 20:17:10 -0000 1.10 @@ -80,11 +80,11 @@ extern const struct inode_ops _sysio_nod struct inode *, \ unsigned , \ struct intnl_stat *))_sysio_do_ebadf -#define _sysio_nodev_getdirentries \ +#define _sysio_nodev_filldirentries \ (ssize_t (*)(struct inode *, \ + _SYSIO_OFF_T *, \ char *, \ - size_t , \ - _SYSIO_OFF_T *))_sysio_do_illop + size_t))_sysio_do_illop #define _sysio_nodev_inop_mkdir \ (int (*)(struct pnode *, \ mode_t))_sysio_do_illop Index: inode.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/inode.h,v retrieving revision 1.24 retrieving revision 1.25 diff -u -w -b -B -p -r1.24 -r1.25 --- inode.h 25 Feb 2005 00:01:06 -0000 1.24 +++ inode.h 4 Aug 2005 20:17:10 -0000 1.25 @@ -86,10 +86,10 @@ struct inode_ops { struct inode *ino, unsigned mask, struct intnl_stat *stbuf); - ssize_t (*inop_getdirentries)(struct inode *ino, + ssize_t (*inop_filldirentries)(struct inode *ino, + _SYSIO_OFF_T *posp, char *buf, - size_t nbytes, - _SYSIO_OFF_T *basep); + size_t nbytes); int (*inop_mkdir)(struct pnode *pno, mode_t mode); int (*inop_rmdir)(struct pnode *pno); int (*inop_symlink)(struct pnode *pno, const char *data); |
From: Lee W. <lw...@us...> - 2008-07-11 18:24:02
|
Update of /cvsroot/libsysio/libsysio/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14678/include Modified Files: dev.h inode.h Log Message: Complete, finally, the change to use pnodes everywhere. Not ported to the new scheme were; sockets, yod, and incore driver. Index: dev.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/dev.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -w -b -B -p -r1.12 -r1.13 --- dev.h 9 May 2007 23:16:20 -0000 1.12 +++ dev.h 11 Jul 2008 18:23:57 -0000 1.13 @@ -73,15 +73,13 @@ extern const struct inode_ops _sysio_nod const char *))_sysio_do_illop #define _sysio_nodev_inop_getattr \ (int (*)(struct pnode *, \ - struct inode *, \ struct intnl_stat *))_sysio_do_ebadf #define _sysio_nodev_inop_setattr \ (int (*)(struct pnode *, \ - struct inode *, \ unsigned , \ struct intnl_stat *))_sysio_do_ebadf #define _sysio_nodev_filldirentries \ - (ssize_t (*)(struct inode *, \ + (ssize_t (*)(struct pnode *, \ _SYSIO_OFF_T *, \ char *, \ size_t))_sysio_do_illop @@ -102,7 +100,7 @@ extern const struct inode_ops _sysio_nod int, \ mode_t))_sysio_do_enodev #define _sysio_nodev_inop_close \ - (int (*)(struct inode *))_sysio_do_ebadf + (int (*)(struct pnode *))_sysio_do_ebadf #define _sysio_nodev_inop_link \ (int (*)(struct pnode *, struct pnode *))_sysio_do_illop #define _sysio_nodev_inop_unlink \ @@ -110,26 +108,24 @@ extern const struct inode_ops _sysio_nod #define _sysio_nodev_inop_rename \ (int (*)(struct pnode *, struct pnode *))_sysio_do_illop #define _sysio_nodev_inop_read \ - (int (*)(struct inode *, \ - struct ioctx *))_sysio_do_ebadf + (int (*)(struct ioctx *))_sysio_do_ebadf #define _sysio_nodev_inop_write \ - (int (*)(struct inode *, \ - struct ioctx *))_sysio_do_ebadf + (int (*)(struct ioctx *))_sysio_do_ebadf #define _sysio_nodev_inop_pos \ - (_SYSIO_OFF_T (*)(struct inode *, _SYSIO_OFF_T))_sysio_do_ebadf + (_SYSIO_OFF_T (*)(struct pnode *, _SYSIO_OFF_T))_sysio_do_ebadf #define _sysio_nodev_inop_iodone \ (int (*)(struct ioctx *))_sysio_do_einval #define _sysio_nodev_inop_fcntl \ - (int (*)(struct inode *, \ + (int (*)(struct pnode *, \ int, \ va_list, \ int *))_sysio_do_ebadf #define _sysio_nodev_inop_sync \ - (int (*)(struct inode *))_sysio_do_ebadf + (int (*)(struct pnode *))_sysio_do_ebadf #define _sysio_nodev_inop_datasync \ - (int (*)(struct inode *))_sysio_do_ebadf + (int (*)(struct pnode *))_sysio_do_ebadf #define _sysio_nodev_inop_ioctl \ - (int (*)(struct inode *, \ + (int (*)(struct pnode *, \ unsigned long int, \ va_list))_sysio_do_ebadf #define _sysio_nodev_inop_mknod \ @@ -139,11 +135,10 @@ extern const struct inode_ops _sysio_nod #ifdef _HAVE_STATVFS #define _sysio_nodev_inop_statvfs \ (int (*)(struct pnode *, \ - struct inode *, \ struct intnl_statvfs *))_sysio_do_illop #endif #define _sysio_nodev_inop_gone \ - (void (*)(struct inode *ino))_sysio_do_noop + (void (*)(struct inode *))_sysio_do_noop extern int _sysio_dev_init(void); extern dev_t _sysio_dev_alloc(void); Index: inode.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/inode.h,v retrieving revision 1.40 retrieving revision 1.41 diff -u -w -b -B -p -r1.40 -r1.41 --- inode.h 11 Jul 2008 16:48:01 -0000 1.40 +++ inode.h 11 Jul 2008 18:23:57 -0000 1.41 @@ -79,17 +79,14 @@ struct ioctx; */ struct inode_ops { int (*inop_lookup)(struct pnode *pno, - struct inode **inop, + struct inode **ino, struct intent *intnt, const char *path); - int (*inop_getattr)(struct pnode *pno, - struct inode *ino, - struct intnl_stat *stbuf); + int (*inop_getattr)(struct pnode *pno, struct intnl_stat *stbuf); int (*inop_setattr)(struct pnode *pno, - struct inode *ino, unsigned mask, struct intnl_stat *stbuf); - ssize_t (*inop_filldirentries)(struct inode *ino, + ssize_t (*inop_filldirentries)(struct pnode *pno, _SYSIO_OFF_T *posp, char *buf, size_t nbytes); @@ -98,23 +95,21 @@ struct inode_ops { int (*inop_symlink)(struct pnode *pno, const char *data); int (*inop_readlink)(struct pnode *pno, char *buf, size_t bufsiz); int (*inop_open)(struct pnode *pno, int flags, mode_t mode); - int (*inop_close)(struct inode *ino); + int (*inop_close)(struct pnode *pno); int (*inop_link)(struct pnode *old, struct pnode *new); int (*inop_unlink)(struct pnode *pno); int (*inop_rename)(struct pnode *old, struct pnode *new); - int (*inop_read)(struct inode *ino, struct ioctx *ioctx); - int (*inop_write)(struct inode *ino, struct ioctx *ioctx); - _SYSIO_OFF_T (*inop_pos)(struct inode *ino, _SYSIO_OFF_T off); - int (*inop_iodone)(struct ioctx *iocp); - int (*inop_fcntl)(struct inode *ino, int cmd, va_list ap, int *rtn); - int (*inop_sync)(struct inode *ino); - int (*inop_datasync)(struct inode *ino); - int (*inop_ioctl)(struct inode *ino, unsigned long int request, va_list ap); + int (*inop_read)(struct ioctx *ioctx); + int (*inop_write)(struct ioctx *ioctx); + _SYSIO_OFF_T (*inop_pos)(struct pnode *pno, _SYSIO_OFF_T off); + int (*inop_iodone)(struct ioctx *ioctx); + int (*inop_fcntl)(struct pnode *pno, int cmd, va_list ap, int *rtn); + int (*inop_sync)(struct pnode *pno); + int (*inop_datasync)(struct pnode *pno); + int (*inop_ioctl)(struct pnode *pno, unsigned long int request, va_list ap); int (*inop_mknod)(struct pnode *pno, mode_t mode, dev_t dev); #ifdef _HAVE_STATVFS - int (*inop_statvfs)(struct pnode *pno, - struct inode *ino, - struct intnl_statvfs *buf); + int (*inop_statvfs)(struct pnode *pno, struct intnl_statvfs *buf); #endif void (*inop_gone)(struct inode *ino); }; @@ -509,13 +504,12 @@ struct pnode { #define PNOP_LOOKUP(_pno, _inop, _intnt, _path) \ _PNOP_MKCALL((_pno), lookup, (_pno), (_inop), (_intnt), (_path)) #define PNOP_GETATTR(_pno, _stbuf) \ - _PNOP_CALL((_pno), getattr, (_pno), (_pno)->p_base->pb_ino, (_stbuf)) + _PNOP_CALL((_pno), getattr, (_pno), (_stbuf)) #define PNOP_SETATTR(_pno, _mask, _stbuf) \ _PNOP_CALL((_pno), setattr, \ - (_pno), (_pno)->p_base->pb_ino, (_mask), (_stbuf)) + (_pno), (_mask), (_stbuf)) #define PNOP_FILLDIRENTRIES(_pno, _posp, _buf, _nbytes) \ - _PNOP_CALL((_pno), filldirentries, \ - (_pno)->p_base->pb_ino, (_posp), (_buf), (_nbytes)) + _PNOP_CALL((_pno), filldirentries, (_pno), (_posp), (_buf), (_nbytes)) #define PNOP_MKDIR(_pno, _mode) \ _PNOP_MKCALL((_pno), mkdir, (_pno), (_mode)) #define PNOP_RMDIR(_pno) \ @@ -527,37 +521,35 @@ struct pnode { #define PNOP_OPEN(_pno, _flags, _mode) \ _PNOP_MKCALL((_pno), open, (_pno), (_flags), (_mode)) #define PNOP_CLOSE(_pno) \ - _PNOP_CALL((_pno), close, (_pno)->p_base->pb_ino) + _PNOP_CALL((_pno), close, (_pno)) #define PNOP_LINK(_old, _new) \ _PNOP_CALL((_old), link, (_old), (_new)) #define PNOP_UNLINK(_pno) \ _PNOP_CALL((_pno), unlink, (_pno)) #define PNOP_RENAME(_old, _new) \ _PNOP_CALL((_old), rename, (_old), (_new)) -#define PNOP_READ(_pno, _ioctx) \ - _PNOP_CALL((_pno), read, (_pno)->p_base->pb_ino, (_ioctx)) -#define PNOP_WRITE(_pno, _ioctx) \ - _PNOP_CALL((_pno), write, (_pno)->p_base->pb_ino, (_ioctx)) +#define PNOP_READ(_ioctx) \ + _PNOP_CALL((_ioctx)->ioctx_pno, read, (_ioctx)) +#define PNOP_WRITE(_ioctx) \ + _PNOP_CALL((_ioctx)->ioctx_pno, write, (_ioctx)) #define PNOP_POS(_pno, _off) \ - _PNOP_CALL((_pno), pos, (_pno)->p_base->pb_ino, (_off)) -#define PNOP_IODONE(_pno, _ioctx) \ - _PNOP_CALL((_pno), iodone, (_ioctx)) + _PNOP_CALL((_pno), pos, (_pno), (_off)) +#define PNOP_IODONE(_ioctx) \ + _PNOP_CALL((_ioctx)->ioctx_pno, iodone, (_ioctx)) #define PNOP_FCNTL(_pno, _cmd, _ap, _rtn) \ - _PNOP_CALL((_pno), fcntl, (_pno)->p_base->pb_ino, (_cmd), (_ap), (_rtn)) + _PNOP_CALL((_pno), fcntl, (_pno), (_cmd), (_ap), (_rtn)) #define PNOP_SYNC(_pno) \ - _PNOP_CALL((_pno), sync, (_pno)->p_base->pb_ino) + _PNOP_CALL((_pno), sync, (_pno)) #define PNOP_DATASYNC(_pno) \ - _PNOP_CALL((_pno), datasync, (_pno)->p_base->pb_ino) + _PNOP_CALL((_pno), datasync, (_pno)) #define PNOP_IOCTL(_pno, _request, _ap) \ - _PNOP_CALL((_pno), ioctl, (_pno)->p_base->pb_ino, (_request), (_ap)) + _PNOP_CALL((_pno), ioctl, (_pno), (_request), (_ap)) #define PNOP_MKNOD(_pno, _mode, _dev) \ _PNOP_MKCALL((_pno), mknod, (_pno), (_mode), (_dev)) #ifdef _HAVE_STATVFS #define PNOP_STATVFS(_pno, _buf) \ - _PNOP_CALL((_pno), statvfs, (_pno), (_pno)->p_base->pb_ino, (_buf)) + _PNOP_CALL((_pno), statvfs, (_pno), (_buf)) #endif -#define PNOP_GONE(_pno) \ - _PNOP_CALL((_pno), gone, (_pno)->p_base->pb_ino) /* * An intent record allows callers of namei and lookup to pass some information @@ -650,10 +642,7 @@ struct ioctx { ioctx_fast : 1, /* from stack space */ ioctx_done : 1, /* transfer complete */ ioctx_write : 1; /* op is a write */ -#ifdef not_yet struct pnode *ioctx_pno; /* p-node */ -#endif - struct inode *ioctx_ino; /* i-node (deprecate) */ const struct iovec *ioctx_iov; /* scatter/gather vec */ size_t ioctx_iovlen; /* iovec length */ const struct intnl_xtvec *ioctx_xtv; /* extents */ @@ -672,7 +661,7 @@ struct ioctx { (ioctx)->ioctx_fast = (fast); \ (ioctx)->ioctx_done = 0; \ (ioctx)->ioctx_write = (wr) ? 1 : 0; \ - (ioctx)->ioctx_ino = (pno)->p_base->pb_ino; \ + (ioctx)->ioctx_pno = (pno); \ (ioctx)->ioctx_iov = (iov); \ (ioctx)->ioctx_iovlen = (iovlen); \ (ioctx)->ioctx_xtv = (xtv); \ |