Defined in 1 files as a function:
Referenced in 1 files:
Smatch caller information:
fs/f2fs/namei.c f2fs_rmdir() -> f2fs_unlink()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dir | 4096-ptr_max |
| PARAM_VALUE | 0 | dir->i_flctx->flc_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dir->i_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dir->i_op | 4096-ptr_max |
| PARAM_VALUE | 0 | dir->i_op->rmdir | 4096-ptr_max |
| PARAM_VALUE | 0 | dir->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | dir->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | dir->i_sb->s_cop->inode_info_offs | 1632,1720,1808,2632,2648 |
| PARAM_VALUE | 1 | dentry | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_inode | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_inode->i_data.host->i_sb->s_export_op->encode_fh | 0,2,1398972869330624512,1616549510479982592,2037984473558433792,2776440803454029824,3228746867770966016,3502492669594062848,3526768263295340544,3559173554394271744,5000850239487131648,5583386343686406144,5817357685191483392-s64max |
| PARAM_VALUE | 1 | dentry->d_inode->i_data.host->i_sb->s_export_op->fh_to_dentry | 0,8684,447817974243774464,687732489194512384,742201802719268864,868497899885588480,1471448175530500096,2021658383390310400,2445877819203563520,2512819722689847296,2649270699546726400,2761259683714371584,2893332316235677696-s64max |
| PARAM_VALUE | 1 | dentry->d_inode->i_data.host->i_sb->s_export_op->fh_to_parent | 0,5297,148606482432692224,436469935444291584,467281172929331200,529780027764285440,1092893949038768128,1556959531105513472,1608953577475584000,1649536479961075712,2404761408063094784,2970908329832960000,3511613614414655488-s64max |
| PARAM_VALUE | 1 | dentry->d_inode->i_data.host->i_sb->s_export_op->get_parent | 0,8931,264940071972966400,291591359766798336,565128213429456896,893189740598853632,1241177127089143808,1474696885321834496,1812477326828269568,1893665921928286208,2210088671756947456,2437012291923775488,2483979068402987008-s64max |
| PARAM_VALUE | 1 | dentry->d_inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->list.next | 2624917664208203776 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->list.prev | 2624917664208203776 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 1 | dentry->d_op->d_dname | 0,4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_op->d_iput | 0,4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_op->d_prune | 0,4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_op->d_real | 0,4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_parent->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dentry->d_parent->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_automount | 0,2908707185815040000,3401111987815645184,6746145930460459008,7190988915944083456,7386785427940065280,8018779550845526016 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_init | 0,2385819921126617088,7057831443282669568,7824184004865302528 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_iput | 0,170374395438985216,837750826476904448,5086081384299388928,8216155483032948736 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_manage | 0,1859587847549206528 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_prune | 0,2225594340392566784,7225953709177749504 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_real | 0,4509355519306412032 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_unalias_trylock | 0,6635409759016140800 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_unalias_unlock | 0,6336447517789900800 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_weak_revalidate | 0,1549882712720502784,5632434648052031488,5669063523602272256,7231033168839651328 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_automount | 0,2908707185815040000,3401111987815645184,6746145930460459008,7190988915944083456,7386785427940065280,8018779550845526016 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_init | 0,2385819921126617088,7057831443282669568,7824184004865302528 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_iput | 0,170374395438985216,837750826476904448,5086081384299388928,8216155483032948736 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_manage | 0,1859587847549206528 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_prune | 0,2225594340392566784,7225953709177749504 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_real | 0,4509355519306412032 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_unalias_trylock | 0,6635409759016140800 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_unalias_unlock | 0,6336447517789900800 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_weak_revalidate | 0,1549882712720502784,5632434648052031488,5669063523602272256,7231033168839651328 |
| BUF_SIZE | 1 | dentry | (-1),1-s32max |
| BUF_SIZE | 1 | dentry | (-1),1-s32max |
| CAPPED_DATA | 0 | dir | 1 |
| CAPPED_DATA | 1 | dentry | 1 |
| CAPPED_DATA | 1 | dentry->d_parent->d_inode | 1 |
| DATA_SOURCE | 0 | dir | $0 |
| DATA_SOURCE | 1 | dentry | $1 |
| BIT_INFO | 1 | dentry->d_inode->i_flags | 0x0,0xfffdffff |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | dentry->d_inode->i_mode | 0-u16max |
| USER_DATA | 1 | dentry->d_inode->i_size | (-9223372036854775807)-(-4),0-s64max |
| NO_OVERFLOW_SIMPLE | 1 | dentry->dentry->d_inode->i_size | |
| NO_OVERFLOW_SIMPLE | 1 | dentry->moved->d_inode->i_size | |
| LOCK2 | 1 | &dentry->d_inode->i_rwsem | |
| HALF_LOCKED2 | &dir->d_inode->i_rwsem | ||
| HALF_LOCKED2 | 0 | &dir->i_rwsem | |
| HALF_LOCKED2 | 1 | &dentry->d_lockref.lock | |
| HALF_LOCKED2 | 1 | &dentry->d_sb->s_vfs_rename_mutex | |
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/f2fs/namei.c f2fs_symlink() -> f2fs_unlink()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dir | 4096-ptr_max |
| PARAM_VALUE | 0 | dir->i_flctx->flc_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dir->i_op | 4096-ptr_max |
| PARAM_VALUE | 0 | dir->i_op->symlink | 4096-ptr_max |
| PARAM_VALUE | 0 | dir->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | dir->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | dir->i_sb | 4096-ptr_max |
| PARAM_VALUE | 0 | dir->i_sb->s_cop->inode_info_offs | 1632,1720,1808,2632,2648 |
| PARAM_VALUE | 0 | dir->i_sb->s_export_op->encode_fh | 0,2,1398972869330624512,1616549510479982592,2037984473558433792 |
| PARAM_VALUE | 0 | dir->i_sb->s_export_op->fh_to_dentry | 0,8684,447817974243774464,687732489194512384,742201802719268864 |
| PARAM_VALUE | 0 | dir->i_sb->s_export_op->fh_to_parent | 0,4672,148606482432692224,436469935444291584,457356038048772096 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->erase_free_sem.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->erase_free_sem.first_waiter->list.prev->prev | 5159360019465732096 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->erase_free_sem.osq.tail.counter | s32min-s32max |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->error_dirty | 0-1 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->error_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->iostat_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->available_nids | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->bitmap_size | s32min-s32max |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->dirty_nats_ratio | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->max_nid | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->max_rf_node_blocks | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->nat_bits_blocks | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->nat_blkaddr | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->nat_blocks | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->nat_tree_lock.internal_rwsem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->next_scan_nid | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->nid_list_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->ra_nid_pages | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->nm_info->ram_thresh | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->raw_super->feature | 0,2-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sb->s_pending_errors.refs.counter | s32min-s32max |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sb_lock.internal_rwsem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sb_lock.internal_rwsem.first_waiter->handoff_set | 1 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sb_lock.internal_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->ipu_policy | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->main_blkaddr | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->main_segments | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->min_fsync_blocks | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->min_hot_blocks | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->min_ipu_util | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->min_seq_blocks | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->min_ssr_sections | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->ovp_segments | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->rec_prefree_segments | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->reserved_segments | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->seg0_blkaddr | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->segment_count | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->sm_info->ssa_blkaddr | 0-4294967295 |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->wbuf_sem.osq.tail.counter | s32min-s32max |
| PARAM_VALUE | 0 | dir->i_sb->s_fs_info->xattr_sem.osq.tail.counter | s32min-s32max |
| PARAM_VALUE | 0 | dir->i_sb->s_op | 4096-ptr_max |
| PARAM_VALUE | 0 | *dir->i_sb->s_fs_info->page_eio_cnt | 0 |
| PARAM_VALUE | 1 | dentry | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_alias->pprev | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_alias.pprev | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_inode | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_parent | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_parent->d_inode | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_parent->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dentry->d_parent->d_inode->i_rwsem.first_waiter->type | 0-1 |
| BUF_SIZE | 1 | dentry | (-1),1-s32max |
| BUF_SIZE | 1 | dentry | (-1),1-s32max |
| CAPPED_DATA | 0 | dir->i_sb | 1 |
| CAPPED_DATA | 0 | dir->i_sb->s_fs_info->root_ino_num | 1 |
| CAPPED_DATA | 0 | dir->i_sb->s_user_ns->gid_map.nr_extents | 1 |
| CAPPED_DATA | 0 | dir->i_sb->s_user_ns->uid_map.nr_extents | 1 |
| DATA_SOURCE | 0 | dir | $1 |
| DATA_SOURCE | 1 | dentry | $2 |
| PARAM_COMPARE | 0 | &dir->i_sb->s_fs_info->nm_info->free_nid_list | != $0->i_sb->s_fs_info->nm_info->free_nid_list.next |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 0 | dir->i_mode | 0-u16max |
| USER_DATA | 0 | dir->i_size | (-9223372036854775807)-(-4),0-s64max |
| NO_OVERFLOW_SIMPLE | 1 | dentry->d_inode->i_size |
fs/namei.c vfs_unlink() -> (struct inode_operations)->unlink()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dir | 4096-ptr_max |
| PARAM_VALUE | 0 | dir->i_flctx->flc_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dir->i_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | dir->i_op | 4096-ptr_max |
| PARAM_VALUE | 0 | dir->i_op->unlink | 4096-ptr_max |
| PARAM_VALUE | 0 | dir->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | dir->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dentry | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_inode | 4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_inode->i_flctx->flc_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | dentry->d_inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->list.next | 2624917664208203776 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->list.prev | 2624917664208203776 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dentry->d_inode->i_rwsem.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 1 | dentry->d_op->d_dname | 0,4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_op->d_iput | 0,4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_op->d_prune | 0,4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_op->d_real | 0,4096-ptr_max |
| PARAM_VALUE | 1 | dentry->d_parent->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | dentry->d_parent->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_automount | 0,2908707185815040000,3401111987815645184,6746145930460459008,7190988915944083456,7386785427940065280,8018779550845526016 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_init | 0,2385819921126617088,7057831443282669568,7824184004865302528 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_iput | 0,170374395438985216,837750826476904448,5086081384299388928,8216155483032948736 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_manage | 0,1859587847549206528 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_prune | 0,2225594340392566784,7225953709177749504 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_real | 0,4509355519306412032 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_unalias_trylock | 0,6635409759016140800 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_unalias_unlock | 0,6336447517789900800 |
| PARAM_VALUE | 1 | dentry->d_parent->d_sb->__s_d_op->d_weak_revalidate | 0,1549882712720502784,5632434648052031488,5669063523602272256,7231033168839651328 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_automount | 0,2908707185815040000,3401111987815645184,6746145930460459008,7190988915944083456,7386785427940065280,8018779550845526016 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_init | 0,2385819921126617088,7057831443282669568,7824184004865302528 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_iput | 0,170374395438985216,837750826476904448,5086081384299388928,8216155483032948736 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_manage | 0,1859587847549206528 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_prune | 0,2225594340392566784,7225953709177749504 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_real | 0,4509355519306412032 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_unalias_trylock | 0,6635409759016140800 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_unalias_unlock | 0,6336447517789900800 |
| PARAM_VALUE | 1 | dentry->d_sb->__s_d_op->d_weak_revalidate | 0,1549882712720502784,5632434648052031488,5669063523602272256,7231033168839651328 |
| PARAM_VALUE | 1 | dentry->d_sb->s_export_op->flags | 0,127 |
| BUF_SIZE | 1 | dentry | (-1)-s32max |
| BUF_SIZE | 1 | dentry | (-1)-s32max |
| CAPPED_DATA | 0 | dir | 1 |
| CAPPED_DATA | 1 | dentry | 1 |
| CAPPED_DATA | 1 | dentry->d_parent->d_inode | 1 |
| DATA_SOURCE | 0 | dir | $1 |
| DATA_SOURCE | 1 | dentry | $2 |
| CONTAINER | 0 | -56-32+0 | $(-1) |
| PARAM_COMPARE | 0 | dir | == $1->d_parent->d_inode |
| PARAM_COMPARE | 1 | dentry->d_parent->d_inode | == $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | dentry->d_inode->i_mode | 0-u16max |
| USER_DATA | 1 | dentry->d_inode->i_size | (-9223372036854775807)-(-4),0-s64max |
| NO_OVERFLOW_SIMPLE | 1 | dentry->dentry->d_inode->i_size | |
| NO_OVERFLOW_SIMPLE | 1 | dentry->moved->d_inode->i_size | |
| LOCK2 | &target->i_rwsem | ||
| HALF_LOCKED2 | &dir->d_inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | 0 | &dir->i_rwsem | |
| HALF_LOCKED2 | 1 | &dentry->d_lockref.lock | |
| HALF_LOCKED2 | 1 | &dentry->d_sb->s_vfs_rename_mutex | |
| TYPE_LOCK | (struct inode)->i_rwsem |