Defined in 1 files as a function:
Referenced in 6 files:
- fs/udf/file.c, line 103
- fs/udf/inode.c
- fs/udf/misc.c, line 43
- fs/udf/namei.c
- fs/udf/truncate.c, line 236
- fs/udf/udfdecl.h, line 60
Smatch caller information:
fs/udf/misc.c udf_add_extendedattr() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| BUF_SIZE | 0 | inode | (-1)-s32max |
| BUF_SIZE | 0 | inode | (-1)-s32max |
| BUF_SIZE | 0 | inode->i_fop | (-1),272 |
| BUF_SIZE | 0 | inode->i_link | (-1),1-255 |
| BUF_SIZE | 0 | inode->i_mapping->a_ops | (-1),152 |
| BUF_SIZE | 0 | inode->i_op | (-1),256 |
| BUF_SIZE | 0 | inode->i_sb | (-1),80,2816 |
| CAPPED_DATA | 0 | inode->i_sb | 1 |
| CAPPED_DATA | 0 | inode->i_sb->s_fs_info->s_partitions | 1 |
| DATA_SOURCE | 0 | inode | $0 |
| STR_LEN | 0 | inode | (-1)-0,23-24 |
| STR_LEN | 0 | inode | (-1)-0,23-24 |
| STR_LEN | 0 | inode->i_sb | (-1),8 |
| NOSPEC | 0 | inode->i_bytes | |
| NOSPEC | 0 | inode->i_mode | |
| NOSPEC | 0 | inode->i_size | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->__i_nlink | 1-u32max |
| USER_DATA | 0 | inode->i_blocks | 0-18014398509481983,18428729675200069632-u64max |
| USER_DATA | 0 | inode->i_bytes | 0-65023[c] |
| USER_DATA | 0 | inode->i_ino | 0-u64max |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_rdev | 0-u32max[c] |
| USER_DATA | 0 | inode->i_sb->s_flags | 0-u64max[c] |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-s64max |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_linklen | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_size | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits | |
| HALF_LOCKED2 | 0 | &inode->i_rwsem |
fs/udf/truncate.c udf_truncate_extents() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| DATA_SOURCE | 0 | inode | $0 |
| NOSPEC | 0 | inode->i_size | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->i_blocks | 0-36028797024823343,18428729675200069633-u64max |
| USER_DATA | 0 | inode->i_bytes | 0-65023[c] |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | s64min-s64max |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_bytes | |
| LOCK2 | &iinfo->i_data_sem | ||
| HALF_LOCKED2 | 0 | &inode->i_mapping->invalidate_lock | |
| TYPE_LOCK | (struct udf_inode_info)->i_data_sem |
fs/udf/inode.c __udf_add_aext() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | inode | (-1)-s32max |
| BUF_SIZE | 0 | inode | (-1)-s32max |
| BUF_SIZE | 0 | inode->i_data.a_ops | (-1),152 |
| BUF_SIZE | 0 | inode->i_fop | (-1),272 |
| BUF_SIZE | 0 | inode->i_op | (-1),256 |
| DATA_SOURCE | 0 | inode | $0 |
| NOSPEC | 0 | inode->i_size | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->i_blocks | 0-18014398515341359,18428729675200069633-u64max |
| USER_DATA | 0 | inode->i_bytes | 0-65023[c] |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-(-4),0-9223372036854775806 |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_ino | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_size | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits | |
| HALF_LOCKED2 | &iinfo->i_data_sem | ||
| HALF_LOCKED2 | &sbi->s_alloc_mutex | ||
| HALF_LOCKED2 | 0 | &inode->i_mapping->invalidate_lock |
fs/udf/inode.c inode_getblk() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| DATA_SOURCE | 0 | inode | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->i_blocks | 0-18014398515341359,18428729675200069633-u64max |
| USER_DATA | 0 | inode->i_bytes | 0-65023[c] |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-(-4),0-9223372036854775806[c] |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_bytes | |
| LOCK2 | &iinfo->i_data_sem | ||
| HALF_LOCKED2 | 0 | &inode->i_mapping->invalidate_lock | |
| HALF_LOCKED2 | 0 | &inode->i_rwsem | |
| TYPE_LOCK | (struct udf_inode_info)->i_data_sem |
fs/udf/inode.c udf_current_aext() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | inode | (-1),1-s32max |
| BUF_SIZE | 0 | inode | (-1),1-s32max |
| BUF_SIZE | 0 | inode->i_data.a_ops | (-1),152 |
| BUF_SIZE | 0 | inode->i_fop | (-1),272 |
| BUF_SIZE | 0 | inode->i_op | (-1),256 |
| DATA_SOURCE | 0 | inode | $0 |
| NOSPEC | 0 | inode->i_size | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->__i_nlink | 1-u32max |
| USER_DATA | 0 | inode->i_blocks | 0-36028797024823343,18428729675200069633-u64max |
| USER_DATA | 0 | inode->i_bytes | 0-65023[c] |
| USER_DATA | 0 | inode->i_ino | 0-u32max[c] |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-(-2),0-s64max |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_linklen | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_size | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits | |
| HALF_LOCKED2 | &iinfo->i_data_sem | ||
| HALF_LOCKED2 | 0 | &inode->i_mapping->invalidate_lock | |
| HALF_LOCKED2 | 0 | &inode->i_rwsem |
fs/udf/inode.c udf_current_aext() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | inode | (-1),1-s32max |
| BUF_SIZE | 0 | inode | (-1),1-s32max |
| BUF_SIZE | 0 | inode->i_data.a_ops | (-1),152 |
| BUF_SIZE | 0 | inode->i_fop | (-1),272 |
| BUF_SIZE | 0 | inode->i_op | (-1),256 |
| DATA_SOURCE | 0 | inode | $0 |
| NOSPEC | 0 | inode->i_size | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->__i_nlink | 1-u32max |
| USER_DATA | 0 | inode->i_blocks | 0-36028797024823343,18428729675200069633-u64max |
| USER_DATA | 0 | inode->i_bytes | 0-65023[c] |
| USER_DATA | 0 | inode->i_ino | 0-u32max[c] |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-(-2),0-s64max |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_linklen | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_size | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits | |
| HALF_LOCKED2 | &iinfo->i_data_sem | ||
| HALF_LOCKED2 | 0 | &inode->i_mapping->invalidate_lock | |
| HALF_LOCKED2 | 0 | &inode->i_rwsem |
fs/udf/inode.c udf_current_aext() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | inode | (-1),1-s32max |
| BUF_SIZE | 0 | inode | (-1),1-s32max |
| BUF_SIZE | 0 | inode->i_data.a_ops | (-1),152 |
| BUF_SIZE | 0 | inode->i_fop | (-1),272 |
| BUF_SIZE | 0 | inode->i_op | (-1),256 |
| DATA_SOURCE | 0 | inode | $0 |
| NOSPEC | 0 | inode->i_size | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->__i_nlink | 1-u32max |
| USER_DATA | 0 | inode->i_blocks | 0-36028797024823343,18428729675200069633-u64max |
| USER_DATA | 0 | inode->i_bytes | 0-65023[c] |
| USER_DATA | 0 | inode->i_ino | 0-u32max[c] |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-(-2),0-s64max |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_linklen | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_size | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits | |
| HALF_LOCKED2 | &iinfo->i_data_sem | ||
| HALF_LOCKED2 | 0 | &inode->i_mapping->invalidate_lock | |
| HALF_LOCKED2 | 0 | &inode->i_rwsem |
fs/udf/inode.c udf_extend_file() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| DATA_SOURCE | 0 | inode | $0 |
| NOSPEC | 0 | inode->i_size | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->i_blocks | 0-36028797024823343,18428729675200069633-u64max |
| USER_DATA | 0 | inode->i_bytes | 0-65023[c] |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-(-4),0-9223372036854775806 |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_bytes | |
| LOCK2 | &iinfo->i_data_sem | ||
| HALF_LOCKED2 | 0 | &inode->i_mapping->invalidate_lock | |
| TYPE_LOCK | (struct udf_inode_info)->i_data_sem |
fs/udf/inode.c udf_read_inode() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| BUF_SIZE | 0 | inode->i_sb | (-1),80,2752,2816,2880 |
| CAPPED_DATA | 0 | inode->i_ino | 1 |
| CAPPED_DATA | 0 | inode->i_sb | 1 |
| CAPPED_DATA | 0 | inode->i_sb->s_fs_info->s_partitions | 1 |
| DATA_SOURCE | 0 | inode | $0 |
| STR_LEN | 0 | inode->i_sb | (-1),8 |
| NOSPEC | 0 | inode->i_ino | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->__i_nlink | 1-u32max |
| USER_DATA | 0 | inode->i_ino | 1-u32max[c] |
| USER_DATA | 0 | inode->i_sb->s_flags | 0-u64max[c] |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits |
fs/udf/inode.c udf_read_inode() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| BUF_SIZE | 0 | inode->i_sb | (-1),80,2752,2816,2880 |
| CAPPED_DATA | 0 | inode->i_ino | 1 |
| CAPPED_DATA | 0 | inode->i_sb | 1 |
| CAPPED_DATA | 0 | inode->i_sb->s_fs_info->s_partitions | 1 |
| CAPPED_DATA | 0 | inode->i_size | 1 |
| DATA_SOURCE | 0 | inode | $0 |
| STR_LEN | 0 | inode->i_sb | (-1),8 |
| NOSPEC | 0 | inode->i_ino | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->__i_nlink | 1-u32max |
| USER_DATA | 0 | inode->i_ino | 1-u32max[c] |
| USER_DATA | 0 | inode->i_sb->s_flags | 0-u64max[c] |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits |
fs/udf/inode.c udf_setsize() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| CAPPED_DATA | 0 | inode->i_size | 1 |
| DATA_SOURCE | 0 | inode | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-(-4),0-9223372036854775806 |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_bytes | |
| HALF_LOCKED2 | 0 | &inode->i_mapping->invalidate_lock |
fs/udf/inode.c udf_setsize() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| DATA_SOURCE | 0 | inode | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-(-4),0-s64max |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_bytes | |
| LOCK2 | &iinfo->i_data_sem | ||
| HALF_LOCKED2 | 0 | &inode->i_mapping->invalidate_lock | |
| TYPE_LOCK | (struct udf_inode_info)->i_data_sem |
fs/udf/inode.c udf_write_aext() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | inode | (-1),1-s32max |
| BUF_SIZE | 0 | inode | (-1),1-s32max |
| BUF_SIZE | 0 | inode->i_data.a_ops | (-1),152 |
| BUF_SIZE | 0 | inode->i_fop | (-1),272 |
| BUF_SIZE | 0 | inode->i_op | (-1),256 |
| DATA_SOURCE | 0 | inode | $0 |
| NOSPEC | 0 | inode->i_size | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->i_blocks | 0-36028797024823343,18428729675200069633-u64max |
| USER_DATA | 0 | inode->i_bytes | 0-65023[c] |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-(-2),0-s64max |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_ino | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_linklen | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_bytes | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_mapping->host->i_size | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits | |
| HALF_LOCKED2 | &iinfo->i_data_sem | ||
| HALF_LOCKED2 | &sbi->s_alloc_mutex | ||
| HALF_LOCKED2 | 0 | &inode->i_mapping->invalidate_lock | |
| HALF_LOCKED2 | 0 | &inode->i_rwsem |
fs/udf/file.c udf_file_write_iter() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | 0 | &inode->i_rwsem | |
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/udf/namei.c udf_expand_dir_adinicb() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| BUF_SIZE | 0 | inode | (-1)-s32max |
| BUF_SIZE | 0 | inode | (-1)-s32max |
| BUF_SIZE | 0 | inode->i_fop | (-1),272 |
| BUF_SIZE | 0 | inode->i_op | (-1),256 |
| CAPPED_DATA | 0 | inode->i_sb->s_fs_info->s_partitions | 1 |
| CAPPED_DATA | 0 | inode->i_size | 1 |
| DATA_SOURCE | 0 | inode | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->i_blocks | 0-36028797024823342 |
| USER_DATA | 0 | inode->i_bytes | 0-65022[c] |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits |
fs/udf/namei.c udf_ext0_offset() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| BUF_SIZE | 0 | inode | (-1)-s32max |
| BUF_SIZE | 0 | inode | (-1)-s32max |
| BUF_SIZE | 0 | inode->i_data.a_ops | (-1),152 |
| BUF_SIZE | 0 | inode->i_fop | (-1),272 |
| BUF_SIZE | 0 | inode->i_op | (-1),256 |
| DATA_SOURCE | 0 | inode | $0 |
| NOSPEC | 0 | inode->i_size | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | inode->i_bytes | 0-65022[c] |
| USER_DATA | 0 | inode->i_mode | 0-u16max |
| USER_DATA | 0 | inode->i_size | (-9223372036854775807)-(-4),0-s64max[c] |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits | |
| HALF_LOCKED2 | &iinfo->i_data_sem |
fs/udf/namei.c udf_symlink() -> udf_file_entry_alloc_offset()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | inode | 4096-ptr_max |
| BUF_SIZE | 0 | inode->i_data.a_ops | 144 |
| BUF_SIZE | 0 | inode->i_op | 256 |
| CAPPED_DATA | 0 | inode->i_ino | 1 |
| CAPPED_DATA | 0 | inode->i_sb | 1 |
| CAPPED_DATA | 0 | inode->i_sb->s_time_max | 1 |
| DATA_SOURCE | 0 | inode | r udf_new_inode |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | inode->i_blkbits | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize | |
| NO_OVERFLOW_SIMPLE | 0 | inode->i_sb->s_blocksize_bits | |
| LOCK2 | &iinfo->i_data_sem | ||
| TYPE_LOCK | (struct udf_inode_info)->i_data_sem |