/* _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ Function :dbgPrintVfsInode Input :struct inode *inode < vfs inode > Output :void Return :void Description :print vfs inode debug information _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ */ void dbgPrintVfsInode( struct inode *inode ) { DBGPRINT( "<ME2FS>[vfs inode information]\n" ); DBGPRINT( "<ME2FS>i_mode = %4X\n", inode->i_mode ); DBGPRINT( "<ME2FS>i_opflags = %u\n", inode->i_opflags ); DBGPRINT( "<ME2FS>i_uid = %u\n", __kuid_val( inode->i_uid ) ); DBGPRINT( "<ME2FS>i_gid = %u\n", __kgid_val( inode->i_gid ) ); DBGPRINT( "<ME2FS>i_flags = %u\n", inode->i_flags ); DBGPRINT( "<ME2FS>i_nlink = %u\n", inode->i_nlink ); DBGPRINT( "<ME2FS>i_rdev = %u\n", inode->i_rdev ); DBGPRINT( "<ME2FS>i_size = %llu\n", inode->i_size ); DBGPRINT( "<ME2FS>i_atime.tv_sec = %lu\n", inode->i_atime.tv_sec ); DBGPRINT( "<ME2FS>i_atime.tv_nsec = %lu\n", inode->i_atime.tv_nsec ); DBGPRINT( "<ME2FS>i_mtime.tv_sec = %lu\n", inode->i_mtime.tv_sec ); DBGPRINT( "<ME2FS>i_mtime.tv_nsec = %lu\n", inode->i_mtime.tv_nsec ); DBGPRINT( "<ME2FS>i_ctime.tv_sec = %lu\n", inode->i_ctime.tv_sec ); DBGPRINT( "<ME2FS>i_ctime.tv_nsec = %lu\n", inode->i_ctime.tv_nsec ); DBGPRINT( "<ME2FS>i_bytes = %u\n", inode->i_bytes ); DBGPRINT( "<ME2FS>i_blkbits = %u\n", inode->i_blkbits ); DBGPRINT( "<ME2FS>i_blocks = %lu\n", inode->i_blocks ); DBGPRINT( "<ME2FS>i_state = %lu\n", inode->i_state ); DBGPRINT( "<ME2FS>dirtied_when = %lu\n", inode->dirtied_when ); DBGPRINT( "<ME2FS>i_version = %llu\n", inode->i_version ); DBGPRINT( "<ME2FS>i_count = %d\n", atomic_read( &inode->i_count ) ); DBGPRINT( "<ME2FS>i_dio_count = %d\n", atomic_read( &inode->i_dio_count ) ); DBGPRINT( "<ME2FS>i_writecount = %d\n", atomic_read( &inode->i_writecount ) ); DBGPRINT( "<ME2FS>i_generation = %u\n", inode->i_generation ); }
gid_t from_kgid(struct user_namespace *targ, kgid_t kgid) { /* Map the gid from a global kernel gid */ return __kgid_val(kgid); }