> btw: can you give me a short explanation for the flags and values. im just
> interested.
>
> thanks.
>
> utz
The explaination gets long quickly!
PBF_READ = (1 << 0), /* buffer intended for reading from device */
PBF_WRITE = (1 << 1), /* buffer intended for writing to device */
PBF_MAPPED = (1 << 2), /* buffer mapped (pb_addr valid) */
PBF_PARTIAL = (1 << 3), /* buffer partially read */
PBF_ASYNC = (1 << 4), /* initiator will not wait for completion */
PBF_NONE = (1 << 5), /* buffer not read at all */
PBF_DELWRI = (1 << 6), /* buffer has dirty pages */
PBF_FREED = (1 << 7), /* buffer has been freed and is invalid */
PBF_SYNC = (1 << 8), /* force updates to disk */
PBF_MAPPABLE = (1 << 9), /* use pages which can be directly addressed */
PBF_FS_RESERVED_1 = (1 << 10), /* reserved for client use
NOTUSED*/
PBF_FS_RESERVED_2 = (1 << 11), /* reserved for client use
NOTUSED*/
PBF_RELEASE = (1 << 12), /* buffer to be released after I/O is done */
/* flags used only as arguments to access routines */
PBF_LOCK = (1 << 13), /* lock requested */
PBF_TRYLOCK = (1 << 14), /* lock requested, but do not wait */
PBF_ALLOCATE = (1 << 15), /* allocate all pages
NOTUSED*/
PBF_FILE_ALLOCATE = (1 << 16), /* allocate all file space */
PBF_DONT_BLOCK = (1 << 17), /* do not block in current thread */
PBF_DIRECT = (1 << 18), /* direct I/O desired */
#ifdef _PAGE_BUF_INTERNAL_
/* flags used only internally */
_PBF_LOCKABLE = (1 << 19), /* page_buf_t may be locked */
_PBF_NEXT_KEY = (1 << 20), /* page_buf_t is a dummy used as a key */
_PBF_ENTER_PAGES = (1 << 21), /* create invalid pages for all */
/* pages in the range of the buffer */
/* not already associated with buffer */
/* NOTUSED - default behavior */
_PBF_ALL_PAGES_MAPPED = (1 << 22),
/* all pages in rage are mapped */
_PBF_SOME_INVALID_PAGES = (1 << 23),
/* some mapped pages are not valid */
_PBF_ADDR_ALLOCATED = (1 << 24),
/* pb_addr space was allocated */
_PBF_MEM_ALLOCATED = (1 << 25),
/* pb_mem and underlying pages allocated */
#endif /* _PAGE_BUF_INTERNAL_ */
PBF_GRIO = (1 << 26),
PBF_FORCEIO = (1 << 27)
/* XFS internal XFS_B_STALE (1 << 31) */
These are a mix of flags used on functions and flags used in buffers, some are
not used anymore, some indicate what is in the buffer, some indicate how we
want to do I/O on the buffer.
Steve
>
>
> Russell Cattelan [cattelan@xxxxxxxxxxx] wrote:
> > Utz Lehmann wrote:
> >
> > Arggg... ok now I'm stuck... the flags look better... not DELWRI and not AS
> YNC.
> > Let me look some more.
> >
> > >
> > > kdb> pb 0xcfc14ec0
> > > page_buf_t at 0xcfc14ec0
> > > pb_flags MAPPED SYNC LOCKABLE MEM_ALLOCATED FORCEIO
> > > pb_target 0xcf7e5ac0 pb_hold 1 pb_next 0xcfc14ec0 pb_prev 0xcfc14ec0
> > > pb_file_offset 0x0 pb_buffer_length 0x200 pb_addr 0xcf7d0200
> > > pb_bn 0x0 pb_count_desired 0x200
> > > pb_io_remaining 0 pb_error 0 pb_mem 0xcfc15c40
> > > pb_iodonesema (-1,1) pb_sema (1,0) pincount (0)
> > > kdb> reboot
> >
> > --
> > Russell Cattelan
> > --
> > Digital Elves inc. -- Currently on loan to SGI
> > Linux XFS core developer.
> >
> >
|