Defined in 1 files as a function:

Referenced in 14 files:

Smatch caller information:

fs/f2fs/gc.c move_data_block() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem

fs/f2fs/gc.c update_sb_metadata() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPABLE 0 21
NOCHECK_CALL
LOCK2 &sbi->cp_global_sem.internal_rwsem
LOCK2 &sbi->gc_lock.internal_rwsem

fs/f2fs/inode.c f2fs_pre_evict_inode() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

fs/f2fs/segment.c f2fs_commit_atomic_write() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/segment.c f2fs_do_replace_block() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem

fs/f2fs/checkpoint.c block_operations() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->cp_global_sem.internal_rwsem
LOCK2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &sbi->umount_mutex
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/checkpoint.c block_operations() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->cp_global_sem.internal_rwsem
LOCK2 &sbi->cp_rwsem.internal_rwsem
LOCK2 &sbi->node_change.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &sbi->umount_mutex

fs/f2fs/checkpoint.c f2fs_down_write_trace() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->sbi 4096-ptr_max
DATA_SOURCE 0 sem $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem

fs/f2fs/checkpoint.c f2fs_lock_all() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &sbi->umount_mutex

fs/f2fs/data.c add_bio_entry() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem

fs/f2fs/data.c add_ipu_page() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem

fs/f2fs/data.c f2fs_disable_compressed_file() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPABLE 0 21
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/data.c f2fs_migrate_blocks() -> f2fs_down_write()

Type Parameter Key Value
CAPABLE 0 21
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/data.c f2fs_migrate_blocks() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPABLE 0 21
NOCHECK_CALL
LOCK2 &inode->i_mapping->invalidate_lock
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct address_space)->invalidate_lock
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/data.c f2fs_submit_all_merged_ipu_writes() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/data.c f2fs_submit_merged_ipu_write() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/data.c f2fs_write_failed() -> f2fs_down_write()

Type Parameter Key Value
NOCHECK_CALL

fs/f2fs/xattr.c f2fs_setxattr() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/sysfs.c __sbi_store() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &sbi->sb->s_umount
TYPE_LOCK (struct kernfs_open_file)->mutex

fs/f2fs/namei.c f2fs_cross_rename() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &source->i_rwsem
HALF_LOCKED2 &target->i_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/verity.c f2fs_end_enable_verity() -> f2fs_down_write()

Type Parameter Key Value
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_disable_compressed_file() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_do_collapse() -> f2fs_down_write()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_expand_inode_data() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_file_write_iter() -> f2fs_down_write()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_insert_range() -> f2fs_down_write()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_ioc_get_encryption_pwsalt() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

fs/f2fs/file.c f2fs_ioc_set_compress_option() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_ioc_setfslabel() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPABLE 0 21
NOCHECK_CALL

fs/f2fs/file.c f2fs_ioc_start_atomic_write() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_ioc_start_atomic_write() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
BUF_SIZE 0 sem 528
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_precache_extents() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem

fs/f2fs/file.c f2fs_punch_hole() -> f2fs_down_write()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_release_compress_blocks() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_reserve_compress_blocks() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_sec_trim_file() -> f2fs_down_write()

Type Parameter Key Value
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c f2fs_setattr() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock

fs/f2fs/file.c f2fs_setflags_common() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c finish_preallocate_blocks() -> f2fs_down_write()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c finish_preallocate_blocks() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/f2fs/file.c try_to_fix_pino() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem

fs/f2fs/dir.c f2fs_add_regular_entry() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/dir.c f2fs_do_tmpfile() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/dir.c f2fs_drop_nlink() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/super.c f2fs_record_stop_reason() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/f2fs/node.c cache_nat_entry() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &src_inode->i_rwsem

fs/f2fs/node.c f2fs_destroy_node_manager() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

fs/f2fs/node.c f2fs_flush_nat_entries() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &sbi->umount_mutex
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/f2fs/node.c f2fs_flush_nat_entries() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &sbi->umount_mutex

fs/f2fs/node.c set_node_addr() -> f2fs_down_write()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->node_write.internal_rwsem