extern void abort(void); #include void reach_error() { assert(0); } /* Generated by CIL v. 1.5.1 */ /* print_CIL_Input is false */ typedef signed char __s8; typedef unsigned char __u8; typedef short __s16; typedef unsigned short __u16; typedef int __s32; typedef unsigned int __u32; typedef long long __s64; typedef unsigned long long __u64; typedef unsigned char u8; typedef short s16; typedef unsigned short u16; typedef int s32; typedef unsigned int u32; typedef long long s64; typedef unsigned long long u64; typedef long __kernel_long_t; typedef unsigned long __kernel_ulong_t; typedef int __kernel_pid_t; typedef unsigned int __kernel_uid32_t; typedef unsigned int __kernel_gid32_t; typedef __kernel_ulong_t __kernel_size_t; typedef __kernel_long_t __kernel_ssize_t; struct __anonstruct___kernel_fsid_t_5 { int val[2U] ; }; typedef struct __anonstruct___kernel_fsid_t_5 __kernel_fsid_t; typedef long long __kernel_loff_t; typedef __kernel_long_t __kernel_time_t; typedef __kernel_long_t __kernel_clock_t; typedef int __kernel_timer_t; typedef int __kernel_clockid_t; typedef __u16 __le16; typedef __u32 __le32; typedef __u64 __le64; typedef __u32 __kernel_dev_t; typedef __kernel_dev_t dev_t; typedef unsigned short umode_t; typedef __kernel_pid_t pid_t; typedef __kernel_clockid_t clockid_t; typedef _Bool bool; typedef __kernel_uid32_t uid_t; typedef __kernel_gid32_t gid_t; typedef __kernel_loff_t loff_t; typedef __kernel_size_t size_t; typedef __kernel_ssize_t ssize_t; typedef __kernel_time_t time_t; typedef __s32 int32_t; typedef __u32 uint32_t; typedef unsigned long sector_t; typedef unsigned long blkcnt_t; typedef unsigned int gfp_t; typedef unsigned int fmode_t; typedef unsigned int oom_flags_t; struct __anonstruct_atomic_t_6 { int counter ; }; typedef struct __anonstruct_atomic_t_6 atomic_t; struct __anonstruct_atomic64_t_7 { long counter ; }; typedef struct __anonstruct_atomic64_t_7 atomic64_t; struct list_head { struct list_head *next ; struct list_head *prev ; }; struct hlist_node; struct hlist_head { struct hlist_node *first ; }; struct hlist_node { struct hlist_node *next ; struct hlist_node **pprev ; }; struct callback_head { struct callback_head *next ; void (*func)(struct callback_head * ) ; }; struct module; typedef void (*ctor_fn_t)(void); struct file_operations; struct _ddebug { char const *modname ; char const *function ; char const *filename ; char const *format ; unsigned int lineno : 18 ; unsigned char flags ; }; struct device; struct completion; struct pt_regs; struct pid; typedef u16 __ticket_t; typedef u32 __ticketpair_t; struct __raw_tickets { __ticket_t head ; __ticket_t tail ; }; union __anonunion_ldv_2024_8 { __ticketpair_t head_tail ; struct __raw_tickets tickets ; }; struct arch_spinlock { union __anonunion_ldv_2024_8 ldv_2024 ; }; typedef struct arch_spinlock arch_spinlock_t; struct __anonstruct_ldv_2031_10 { u32 read ; s32 write ; }; union __anonunion_arch_rwlock_t_9 { s64 lock ; struct __anonstruct_ldv_2031_10 ldv_2031 ; }; typedef union __anonunion_arch_rwlock_t_9 arch_rwlock_t; struct task_struct; struct lockdep_map; struct mm_struct; struct pt_regs { unsigned long r15 ; unsigned long r14 ; unsigned long r13 ; unsigned long r12 ; unsigned long bp ; unsigned long bx ; unsigned long r11 ; unsigned long r10 ; unsigned long r9 ; unsigned long r8 ; unsigned long ax ; unsigned long cx ; unsigned long dx ; unsigned long si ; unsigned long di ; unsigned long orig_ax ; unsigned long ip ; unsigned long cs ; unsigned long flags ; unsigned long sp ; unsigned long ss ; }; struct __anonstruct_ldv_2096_12 { unsigned int a ; unsigned int b ; }; struct __anonstruct_ldv_2111_13 { u16 limit0 ; u16 base0 ; unsigned char base1 ; unsigned char type : 4 ; unsigned char s : 1 ; unsigned char dpl : 2 ; unsigned char p : 1 ; unsigned char limit : 4 ; unsigned char avl : 1 ; unsigned char l : 1 ; unsigned char d : 1 ; unsigned char g : 1 ; unsigned char base2 ; }; union __anonunion_ldv_2112_11 { struct __anonstruct_ldv_2096_12 ldv_2096 ; struct __anonstruct_ldv_2111_13 ldv_2111 ; }; struct desc_struct { union __anonunion_ldv_2112_11 ldv_2112 ; }; typedef unsigned long pgdval_t; typedef unsigned long pgprotval_t; struct pgprot { pgprotval_t pgprot ; }; typedef struct pgprot pgprot_t; struct __anonstruct_pgd_t_15 { pgdval_t pgd ; }; typedef struct __anonstruct_pgd_t_15 pgd_t; struct page; typedef struct page *pgtable_t; struct file; struct seq_file; struct thread_struct; struct cpumask; struct kernel_vm86_regs { struct pt_regs pt ; unsigned short es ; unsigned short __esh ; unsigned short ds ; unsigned short __dsh ; unsigned short fs ; unsigned short __fsh ; unsigned short gs ; unsigned short __gsh ; }; union __anonunion_ldv_2767_18 { struct pt_regs *regs ; struct kernel_vm86_regs *vm86 ; }; struct math_emu_info { long ___orig_eip ; union __anonunion_ldv_2767_18 ldv_2767 ; }; struct bug_entry { int bug_addr_disp ; int file_disp ; unsigned short line ; unsigned short flags ; }; struct cpumask { unsigned long bits[64U] ; }; typedef struct cpumask cpumask_t; typedef struct cpumask *cpumask_var_t; struct static_key; struct seq_operations; struct i387_fsave_struct { u32 cwd ; u32 swd ; u32 twd ; u32 fip ; u32 fcs ; u32 foo ; u32 fos ; u32 st_space[20U] ; u32 status ; }; struct __anonstruct_ldv_5125_23 { u64 rip ; u64 rdp ; }; struct __anonstruct_ldv_5131_24 { u32 fip ; u32 fcs ; u32 foo ; u32 fos ; }; union __anonunion_ldv_5132_22 { struct __anonstruct_ldv_5125_23 ldv_5125 ; struct __anonstruct_ldv_5131_24 ldv_5131 ; }; union __anonunion_ldv_5141_25 { u32 padding1[12U] ; u32 sw_reserved[12U] ; }; struct i387_fxsave_struct { u16 cwd ; u16 swd ; u16 twd ; u16 fop ; union __anonunion_ldv_5132_22 ldv_5132 ; u32 mxcsr ; u32 mxcsr_mask ; u32 st_space[32U] ; u32 xmm_space[64U] ; u32 padding[12U] ; union __anonunion_ldv_5141_25 ldv_5141 ; }; struct i387_soft_struct { u32 cwd ; u32 swd ; u32 twd ; u32 fip ; u32 fcs ; u32 foo ; u32 fos ; u32 st_space[20U] ; u8 ftop ; u8 changed ; u8 lookahead ; u8 no_update ; u8 rm ; u8 alimit ; struct math_emu_info *info ; u32 entry_eip ; }; struct ymmh_struct { u32 ymmh_space[64U] ; }; struct xsave_hdr_struct { u64 xstate_bv ; u64 reserved1[2U] ; u64 reserved2[5U] ; }; struct xsave_struct { struct i387_fxsave_struct i387 ; struct xsave_hdr_struct xsave_hdr ; struct ymmh_struct ymmh ; }; union thread_xstate { struct i387_fsave_struct fsave ; struct i387_fxsave_struct fxsave ; struct i387_soft_struct soft ; struct xsave_struct xsave ; }; struct fpu { unsigned int last_cpu ; unsigned int has_fpu ; union thread_xstate *state ; }; struct kmem_cache; struct perf_event; struct thread_struct { struct desc_struct tls_array[3U] ; unsigned long sp0 ; unsigned long sp ; unsigned long usersp ; unsigned short es ; unsigned short ds ; unsigned short fsindex ; unsigned short gsindex ; unsigned long fs ; unsigned long gs ; struct perf_event *ptrace_bps[4U] ; unsigned long debugreg6 ; unsigned long ptrace_dr7 ; unsigned long cr2 ; unsigned long trap_nr ; unsigned long error_code ; struct fpu fpu ; unsigned long *io_bitmap_ptr ; unsigned long iopl ; unsigned int io_bitmap_max ; }; typedef atomic64_t atomic_long_t; struct stack_trace { unsigned int nr_entries ; unsigned int max_entries ; unsigned long *entries ; int skip ; }; struct lockdep_subclass_key { char __one_byte ; } __attribute__((__packed__)) ; struct lock_class_key { struct lockdep_subclass_key subkeys[8U] ; }; struct lock_class { struct list_head hash_entry ; struct list_head lock_entry ; struct lockdep_subclass_key *key ; unsigned int subclass ; unsigned int dep_gen_id ; unsigned long usage_mask ; struct stack_trace usage_traces[13U] ; struct list_head locks_after ; struct list_head locks_before ; unsigned int version ; unsigned long ops ; char const *name ; int name_version ; unsigned long contention_point[4U] ; unsigned long contending_point[4U] ; }; struct lockdep_map { struct lock_class_key *key ; struct lock_class *class_cache[2U] ; char const *name ; int cpu ; unsigned long ip ; }; struct held_lock { u64 prev_chain_key ; unsigned long acquire_ip ; struct lockdep_map *instance ; struct lockdep_map *nest_lock ; u64 waittime_stamp ; u64 holdtime_stamp ; unsigned short class_idx : 13 ; unsigned char irq_context : 2 ; unsigned char trylock : 1 ; unsigned char read : 2 ; unsigned char check : 2 ; unsigned char hardirqs_off : 1 ; unsigned short references : 11 ; }; struct raw_spinlock { arch_spinlock_t raw_lock ; unsigned int magic ; unsigned int owner_cpu ; void *owner ; struct lockdep_map dep_map ; }; typedef struct raw_spinlock raw_spinlock_t; struct __anonstruct_ldv_5960_29 { u8 __padding[24U] ; struct lockdep_map dep_map ; }; union __anonunion_ldv_5961_28 { struct raw_spinlock rlock ; struct __anonstruct_ldv_5960_29 ldv_5960 ; }; struct spinlock { union __anonunion_ldv_5961_28 ldv_5961 ; }; typedef struct spinlock spinlock_t; struct __anonstruct_rwlock_t_30 { arch_rwlock_t raw_lock ; unsigned int magic ; unsigned int owner_cpu ; void *owner ; struct lockdep_map dep_map ; }; typedef struct __anonstruct_rwlock_t_30 rwlock_t; struct mutex { atomic_t count ; spinlock_t wait_lock ; struct list_head wait_list ; struct task_struct *owner ; char const *name ; void *magic ; struct lockdep_map dep_map ; }; struct mutex_waiter { struct list_head list ; struct task_struct *task ; void *magic ; }; struct timespec; struct seqcount { unsigned int sequence ; }; typedef struct seqcount seqcount_t; struct timespec { __kernel_time_t tv_sec ; long tv_nsec ; }; union ktime { s64 tv64 ; }; typedef union ktime ktime_t; struct tvec_base; struct timer_list { struct list_head entry ; unsigned long expires ; struct tvec_base *base ; void (*function)(unsigned long ) ; unsigned long data ; int slack ; int start_pid ; void *start_site ; char start_comm[16U] ; struct lockdep_map lockdep_map ; }; struct hrtimer; enum hrtimer_restart; struct workqueue_struct; struct work_struct; struct work_struct { atomic_long_t data ; struct list_head entry ; void (*func)(struct work_struct * ) ; struct lockdep_map lockdep_map ; }; struct delayed_work { struct work_struct work ; struct timer_list timer ; int cpu ; }; struct __wait_queue_head { spinlock_t lock ; struct list_head task_list ; }; typedef struct __wait_queue_head wait_queue_head_t; struct completion { unsigned int done ; wait_queue_head_t wait ; }; struct __anonstruct_nodemask_t_100 { unsigned long bits[16U] ; }; typedef struct __anonstruct_nodemask_t_100 nodemask_t; struct __anonstruct_mm_context_t_101 { void *ldt ; int size ; unsigned short ia32_compat ; struct mutex lock ; void *vdso ; }; typedef struct __anonstruct_mm_context_t_101 mm_context_t; struct vm_area_struct; struct bio_vec; struct percpu_counter { raw_spinlock_t lock ; s64 count ; struct list_head list ; s32 *counters ; }; struct fprop_local_percpu { struct percpu_counter events ; unsigned int period ; raw_spinlock_t lock ; }; struct hlist_bl_node; struct hlist_bl_head { struct hlist_bl_node *first ; }; struct hlist_bl_node { struct hlist_bl_node *next ; struct hlist_bl_node **pprev ; }; struct nameidata; struct path; struct vfsmount; struct __anonstruct_ldv_11487_129 { u32 hash ; u32 len ; }; union __anonunion_ldv_11489_128 { struct __anonstruct_ldv_11487_129 ldv_11487 ; u64 hash_len ; }; struct qstr { union __anonunion_ldv_11489_128 ldv_11489 ; unsigned char const *name ; }; struct inode; struct dentry_operations; struct super_block; union __anonunion_d_u_130 { struct list_head d_child ; struct callback_head d_rcu ; }; struct dentry { unsigned int d_flags ; seqcount_t d_seq ; struct hlist_bl_node d_hash ; struct dentry *d_parent ; struct qstr d_name ; struct inode *d_inode ; unsigned char d_iname[32U] ; unsigned int d_count ; spinlock_t d_lock ; struct dentry_operations const *d_op ; struct super_block *d_sb ; unsigned long d_time ; void *d_fsdata ; struct list_head d_lru ; union __anonunion_d_u_130 d_u ; struct list_head d_subdirs ; struct hlist_node d_alias ; }; struct dentry_operations { int (*d_revalidate)(struct dentry * , unsigned int ) ; int (*d_hash)(struct dentry const * , struct inode const * , struct qstr * ) ; int (*d_compare)(struct dentry const * , struct inode const * , struct dentry const * , struct inode const * , unsigned int , char const * , struct qstr const * ) ; int (*d_delete)(struct dentry const * ) ; void (*d_release)(struct dentry * ) ; void (*d_prune)(struct dentry * ) ; void (*d_iput)(struct dentry * , struct inode * ) ; char *(*d_dname)(struct dentry * , char * , int ) ; struct vfsmount *(*d_automount)(struct path * ) ; int (*d_manage)(struct dentry * , bool ) ; }; struct path { struct vfsmount *mnt ; struct dentry *dentry ; }; struct user_namespace; typedef uid_t kuid_t; typedef gid_t kgid_t; struct kstat { u64 ino ; dev_t dev ; umode_t mode ; unsigned int nlink ; kuid_t uid ; kgid_t gid ; dev_t rdev ; loff_t size ; struct timespec atime ; struct timespec mtime ; struct timespec ctime ; unsigned long blksize ; unsigned long long blocks ; }; struct radix_tree_node; struct radix_tree_root { unsigned int height ; gfp_t gfp_mask ; struct radix_tree_node *rnode ; }; struct rb_node { unsigned long __rb_parent_color ; struct rb_node *rb_right ; struct rb_node *rb_left ; }; struct rb_root { struct rb_node *rb_node ; }; enum pid_type { PIDTYPE_PID = 0, PIDTYPE_PGID = 1, PIDTYPE_SID = 2, PIDTYPE_MAX = 3 } ; struct pid_namespace; struct upid { int nr ; struct pid_namespace *ns ; struct hlist_node pid_chain ; }; struct pid { atomic_t count ; unsigned int level ; struct hlist_head tasks[3U] ; struct callback_head rcu ; struct upid numbers[1U] ; }; struct pid_link { struct hlist_node node ; struct pid *pid ; }; struct kernel_cap_struct { __u32 cap[2U] ; }; typedef struct kernel_cap_struct kernel_cap_t; struct fiemap_extent { __u64 fe_logical ; __u64 fe_physical ; __u64 fe_length ; __u64 fe_reserved64[2U] ; __u32 fe_flags ; __u32 fe_reserved[3U] ; }; struct shrink_control { gfp_t gfp_mask ; unsigned long nr_to_scan ; }; struct shrinker { int (*shrink)(struct shrinker * , struct shrink_control * ) ; int seeks ; long batch ; struct list_head list ; atomic_long_t nr_in_batch ; }; enum migrate_mode { MIGRATE_ASYNC = 0, MIGRATE_SYNC_LIGHT = 1, MIGRATE_SYNC = 2 } ; struct rw_semaphore; struct rw_semaphore { long count ; raw_spinlock_t wait_lock ; struct list_head wait_list ; struct lockdep_map dep_map ; }; struct bio_set; struct bio; struct bio_integrity_payload; struct block_device; struct io_context; struct cgroup_subsys_state; typedef void bio_end_io_t(struct bio * , int ); struct bio_vec { struct page *bv_page ; unsigned int bv_len ; unsigned int bv_offset ; }; struct bio { sector_t bi_sector ; struct bio *bi_next ; struct block_device *bi_bdev ; unsigned long bi_flags ; unsigned long bi_rw ; unsigned short bi_vcnt ; unsigned short bi_idx ; unsigned int bi_phys_segments ; unsigned int bi_size ; unsigned int bi_seg_front_size ; unsigned int bi_seg_back_size ; bio_end_io_t *bi_end_io ; void *bi_private ; struct io_context *bi_ioc ; struct cgroup_subsys_state *bi_css ; struct bio_integrity_payload *bi_integrity ; unsigned int bi_max_vecs ; atomic_t bi_cnt ; struct bio_vec *bi_io_vec ; struct bio_set *bi_pool ; struct bio_vec bi_inline_vecs[0U] ; }; struct export_operations; struct iovec; struct kiocb; struct kobject; struct pipe_inode_info; struct poll_table_struct; struct kstatfs; struct cred; struct swap_info_struct; struct iattr { unsigned int ia_valid ; umode_t ia_mode ; kuid_t ia_uid ; kgid_t ia_gid ; loff_t ia_size ; struct timespec ia_atime ; struct timespec ia_mtime ; struct timespec ia_ctime ; struct file *ia_file ; }; struct fs_disk_quota { __s8 d_version ; __s8 d_flags ; __u16 d_fieldmask ; __u32 d_id ; __u64 d_blk_hardlimit ; __u64 d_blk_softlimit ; __u64 d_ino_hardlimit ; __u64 d_ino_softlimit ; __u64 d_bcount ; __u64 d_icount ; __s32 d_itimer ; __s32 d_btimer ; __u16 d_iwarns ; __u16 d_bwarns ; __s32 d_padding2 ; __u64 d_rtb_hardlimit ; __u64 d_rtb_softlimit ; __u64 d_rtbcount ; __s32 d_rtbtimer ; __u16 d_rtbwarns ; __s16 d_padding3 ; char d_padding4[8U] ; }; struct fs_qfilestat { __u64 qfs_ino ; __u64 qfs_nblks ; __u32 qfs_nextents ; }; typedef struct fs_qfilestat fs_qfilestat_t; struct fs_quota_stat { __s8 qs_version ; __u16 qs_flags ; __s8 qs_pad ; fs_qfilestat_t qs_uquota ; fs_qfilestat_t qs_gquota ; __u32 qs_incoredqs ; __s32 qs_btimelimit ; __s32 qs_itimelimit ; __s32 qs_rtbtimelimit ; __u16 qs_bwarnlimit ; __u16 qs_iwarnlimit ; }; struct dquot; typedef __kernel_uid32_t projid_t; typedef projid_t kprojid_t; struct if_dqinfo { __u64 dqi_bgrace ; __u64 dqi_igrace ; __u32 dqi_flags ; __u32 dqi_valid ; }; enum quota_type { USRQUOTA = 0, GRPQUOTA = 1, PRJQUOTA = 2 } ; typedef long long qsize_t; union __anonunion_ldv_12729_132 { kuid_t uid ; kgid_t gid ; kprojid_t projid ; }; struct kqid { union __anonunion_ldv_12729_132 ldv_12729 ; enum quota_type type ; }; struct mem_dqblk { qsize_t dqb_bhardlimit ; qsize_t dqb_bsoftlimit ; qsize_t dqb_curspace ; qsize_t dqb_rsvspace ; qsize_t dqb_ihardlimit ; qsize_t dqb_isoftlimit ; qsize_t dqb_curinodes ; time_t dqb_btime ; time_t dqb_itime ; }; struct quota_format_type; struct mem_dqinfo { struct quota_format_type *dqi_format ; int dqi_fmt_id ; struct list_head dqi_dirty_list ; unsigned long dqi_flags ; unsigned int dqi_bgrace ; unsigned int dqi_igrace ; qsize_t dqi_maxblimit ; qsize_t dqi_maxilimit ; void *dqi_priv ; }; struct dquot { struct hlist_node dq_hash ; struct list_head dq_inuse ; struct list_head dq_free ; struct list_head dq_dirty ; struct mutex dq_lock ; atomic_t dq_count ; wait_queue_head_t dq_wait_unused ; struct super_block *dq_sb ; struct kqid dq_id ; loff_t dq_off ; unsigned long dq_flags ; struct mem_dqblk dq_dqb ; }; struct quota_format_ops { int (*check_quota_file)(struct super_block * , int ) ; int (*read_file_info)(struct super_block * , int ) ; int (*write_file_info)(struct super_block * , int ) ; int (*free_file_info)(struct super_block * , int ) ; int (*read_dqblk)(struct dquot * ) ; int (*commit_dqblk)(struct dquot * ) ; int (*release_dqblk)(struct dquot * ) ; }; struct dquot_operations { int (*write_dquot)(struct dquot * ) ; struct dquot *(*alloc_dquot)(struct super_block * , int ) ; void (*destroy_dquot)(struct dquot * ) ; int (*acquire_dquot)(struct dquot * ) ; int (*release_dquot)(struct dquot * ) ; int (*mark_dirty)(struct dquot * ) ; int (*write_info)(struct super_block * , int ) ; qsize_t *(*get_reserved_space)(struct inode * ) ; }; struct quotactl_ops { int (*quota_on)(struct super_block * , int , int , struct path * ) ; int (*quota_on_meta)(struct super_block * , int , int ) ; int (*quota_off)(struct super_block * , int ) ; int (*quota_sync)(struct super_block * , int ) ; int (*get_info)(struct super_block * , int , struct if_dqinfo * ) ; int (*set_info)(struct super_block * , int , struct if_dqinfo * ) ; int (*get_dqblk)(struct super_block * , struct kqid , struct fs_disk_quota * ) ; int (*set_dqblk)(struct super_block * , struct kqid , struct fs_disk_quota * ) ; int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ; int (*set_xstate)(struct super_block * , unsigned int , int ) ; }; struct quota_format_type { int qf_fmt_id ; struct quota_format_ops const *qf_ops ; struct module *qf_owner ; struct quota_format_type *qf_next ; }; struct quota_info { unsigned int flags ; struct mutex dqio_mutex ; struct mutex dqonoff_mutex ; struct rw_semaphore dqptr_sem ; struct inode *files[2U] ; struct mem_dqinfo info[2U] ; struct quota_format_ops const *ops[2U] ; }; struct address_space; struct writeback_control; union __anonunion_arg_134 { char *buf ; void *data ; }; struct __anonstruct_read_descriptor_t_133 { size_t written ; size_t count ; union __anonunion_arg_134 arg ; int error ; }; typedef struct __anonstruct_read_descriptor_t_133 read_descriptor_t; struct address_space_operations { int (*writepage)(struct page * , struct writeback_control * ) ; int (*readpage)(struct file * , struct page * ) ; int (*writepages)(struct address_space * , struct writeback_control * ) ; int (*set_page_dirty)(struct page * ) ; int (*readpages)(struct file * , struct address_space * , struct list_head * , unsigned int ) ; int (*write_begin)(struct file * , struct address_space * , loff_t , unsigned int , unsigned int , struct page ** , void ** ) ; int (*write_end)(struct file * , struct address_space * , loff_t , unsigned int , unsigned int , struct page * , void * ) ; sector_t (*bmap)(struct address_space * , sector_t ) ; void (*invalidatepage)(struct page * , unsigned long ) ; int (*releasepage)(struct page * , gfp_t ) ; void (*freepage)(struct page * ) ; ssize_t (*direct_IO)(int , struct kiocb * , struct iovec const * , loff_t , unsigned long ) ; int (*get_xip_mem)(struct address_space * , unsigned long , int , void ** , unsigned long * ) ; int (*migratepage)(struct address_space * , struct page * , struct page * , enum migrate_mode ) ; int (*launder_page)(struct page * ) ; int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long ) ; int (*error_remove_page)(struct address_space * , struct page * ) ; int (*swap_activate)(struct swap_info_struct * , struct file * , sector_t * ) ; void (*swap_deactivate)(struct file * ) ; }; struct backing_dev_info; struct address_space { struct inode *host ; struct radix_tree_root page_tree ; spinlock_t tree_lock ; unsigned int i_mmap_writable ; struct rb_root i_mmap ; struct list_head i_mmap_nonlinear ; struct mutex i_mmap_mutex ; unsigned long nrpages ; unsigned long writeback_index ; struct address_space_operations const *a_ops ; unsigned long flags ; struct backing_dev_info *backing_dev_info ; spinlock_t private_lock ; struct list_head private_list ; void *private_data ; }; struct request_queue; struct hd_struct; struct gendisk; struct block_device { dev_t bd_dev ; int bd_openers ; struct inode *bd_inode ; struct super_block *bd_super ; struct mutex bd_mutex ; struct list_head bd_inodes ; void *bd_claiming ; void *bd_holder ; int bd_holders ; bool bd_write_holder ; struct list_head bd_holder_disks ; struct block_device *bd_contains ; unsigned int bd_block_size ; struct hd_struct *bd_part ; unsigned int bd_part_count ; int bd_invalidated ; struct gendisk *bd_disk ; struct request_queue *bd_queue ; struct list_head bd_list ; unsigned long bd_private ; int bd_fsfreeze_count ; struct mutex bd_fsfreeze_mutex ; }; struct posix_acl; struct inode_operations; union __anonunion_ldv_13165_135 { unsigned int const i_nlink ; unsigned int __i_nlink ; }; union __anonunion_ldv_13185_136 { struct hlist_head i_dentry ; struct callback_head i_rcu ; }; struct file_lock; struct cdev; union __anonunion_ldv_13201_137 { struct pipe_inode_info *i_pipe ; struct block_device *i_bdev ; struct cdev *i_cdev ; }; struct inode { umode_t i_mode ; unsigned short i_opflags ; kuid_t i_uid ; kgid_t i_gid ; unsigned int i_flags ; struct posix_acl *i_acl ; struct posix_acl *i_default_acl ; struct inode_operations const *i_op ; struct super_block *i_sb ; struct address_space *i_mapping ; void *i_security ; unsigned long i_ino ; union __anonunion_ldv_13165_135 ldv_13165 ; dev_t i_rdev ; loff_t i_size ; struct timespec i_atime ; struct timespec i_mtime ; struct timespec i_ctime ; spinlock_t i_lock ; unsigned short i_bytes ; unsigned int i_blkbits ; blkcnt_t i_blocks ; unsigned long i_state ; struct mutex i_mutex ; unsigned long dirtied_when ; struct hlist_node i_hash ; struct list_head i_wb_list ; struct list_head i_lru ; struct list_head i_sb_list ; union __anonunion_ldv_13185_136 ldv_13185 ; u64 i_version ; atomic_t i_count ; atomic_t i_dio_count ; atomic_t i_writecount ; struct file_operations const *i_fop ; struct file_lock *i_flock ; struct address_space i_data ; struct dquot *i_dquot[2U] ; struct list_head i_devices ; union __anonunion_ldv_13201_137 ldv_13201 ; __u32 i_generation ; __u32 i_fsnotify_mask ; struct hlist_head i_fsnotify_marks ; atomic_t i_readcount ; void *i_private ; }; struct fown_struct { rwlock_t lock ; struct pid *pid ; enum pid_type pid_type ; kuid_t uid ; kuid_t euid ; int signum ; }; struct file_ra_state { unsigned long start ; unsigned int size ; unsigned int async_size ; unsigned int ra_pages ; unsigned int mmap_miss ; loff_t prev_pos ; }; union __anonunion_f_u_138 { struct list_head fu_list ; struct callback_head fu_rcuhead ; }; struct file { union __anonunion_f_u_138 f_u ; struct path f_path ; struct file_operations const *f_op ; spinlock_t f_lock ; int f_sb_list_cpu ; atomic_long_t f_count ; unsigned int f_flags ; fmode_t f_mode ; loff_t f_pos ; struct fown_struct f_owner ; struct cred const *f_cred ; struct file_ra_state f_ra ; u64 f_version ; void *f_security ; void *private_data ; struct list_head f_ep_links ; struct list_head f_tfile_llink ; struct address_space *f_mapping ; unsigned long f_mnt_write_state ; }; struct files_struct; typedef struct files_struct *fl_owner_t; struct file_lock_operations { void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ; void (*fl_release_private)(struct file_lock * ) ; }; struct lock_manager_operations { int (*lm_compare_owner)(struct file_lock * , struct file_lock * ) ; void (*lm_notify)(struct file_lock * ) ; int (*lm_grant)(struct file_lock * , struct file_lock * , int ) ; void (*lm_break)(struct file_lock * ) ; int (*lm_change)(struct file_lock ** , int ) ; }; struct nlm_lockowner; struct nfs_lock_info { u32 state ; struct nlm_lockowner *owner ; struct list_head list ; }; struct nfs4_lock_state; struct nfs4_lock_info { struct nfs4_lock_state *owner ; }; struct fasync_struct; struct __anonstruct_afs_140 { struct list_head link ; int state ; }; union __anonunion_fl_u_139 { struct nfs_lock_info nfs_fl ; struct nfs4_lock_info nfs4_fl ; struct __anonstruct_afs_140 afs ; }; struct file_lock { struct file_lock *fl_next ; struct list_head fl_link ; struct list_head fl_block ; fl_owner_t fl_owner ; unsigned int fl_flags ; unsigned char fl_type ; unsigned int fl_pid ; struct pid *fl_nspid ; wait_queue_head_t fl_wait ; struct file *fl_file ; loff_t fl_start ; loff_t fl_end ; struct fasync_struct *fl_fasync ; unsigned long fl_break_time ; unsigned long fl_downgrade_time ; struct file_lock_operations const *fl_ops ; struct lock_manager_operations const *fl_lmops ; union __anonunion_fl_u_139 fl_u ; }; struct fasync_struct { spinlock_t fa_lock ; int magic ; int fa_fd ; struct fasync_struct *fa_next ; struct file *fa_file ; struct callback_head fa_rcu ; }; struct sb_writers { struct percpu_counter counter[3U] ; wait_queue_head_t wait ; int frozen ; wait_queue_head_t wait_unfrozen ; struct lockdep_map lock_map[3U] ; }; struct file_system_type; struct super_operations; struct xattr_handler; struct mtd_info; struct super_block { struct list_head s_list ; dev_t s_dev ; unsigned char s_blocksize_bits ; unsigned long s_blocksize ; loff_t s_maxbytes ; struct file_system_type *s_type ; struct super_operations const *s_op ; struct dquot_operations const *dq_op ; struct quotactl_ops const *s_qcop ; struct export_operations const *s_export_op ; unsigned long s_flags ; unsigned long s_magic ; struct dentry *s_root ; struct rw_semaphore s_umount ; int s_count ; atomic_t s_active ; void *s_security ; struct xattr_handler const **s_xattr ; struct list_head s_inodes ; struct hlist_bl_head s_anon ; struct list_head *s_files ; struct list_head s_mounts ; struct list_head s_dentry_lru ; int s_nr_dentry_unused ; spinlock_t s_inode_lru_lock ; struct list_head s_inode_lru ; int s_nr_inodes_unused ; struct block_device *s_bdev ; struct backing_dev_info *s_bdi ; struct mtd_info *s_mtd ; struct hlist_node s_instances ; struct quota_info s_dquot ; struct sb_writers s_writers ; char s_id[32U] ; u8 s_uuid[16U] ; void *s_fs_info ; unsigned int s_max_links ; fmode_t s_mode ; u32 s_time_gran ; struct mutex s_vfs_rename_mutex ; char *s_subtype ; char *s_options ; struct dentry_operations const *s_d_op ; int cleancache_poolid ; struct shrinker s_shrink ; atomic_long_t s_remove_count ; int s_readonly_remount ; }; struct fiemap_extent_info { unsigned int fi_flags ; unsigned int fi_extents_mapped ; unsigned int fi_extents_max ; struct fiemap_extent *fi_extents_start ; }; struct file_operations { struct module *owner ; loff_t (*llseek)(struct file * , loff_t , int ) ; ssize_t (*read)(struct file * , char * , size_t , loff_t * ) ; ssize_t (*write)(struct file * , char const * , size_t , loff_t * ) ; ssize_t (*aio_read)(struct kiocb * , struct iovec const * , unsigned long , loff_t ) ; ssize_t (*aio_write)(struct kiocb * , struct iovec const * , unsigned long , loff_t ) ; int (*readdir)(struct file * , void * , int (*)(void * , char const * , int , loff_t , u64 , unsigned int ) ) ; unsigned int (*poll)(struct file * , struct poll_table_struct * ) ; long (*unlocked_ioctl)(struct file * , unsigned int , unsigned long ) ; long (*compat_ioctl)(struct file * , unsigned int , unsigned long ) ; int (*mmap)(struct file * , struct vm_area_struct * ) ; int (*open)(struct inode * , struct file * ) ; int (*flush)(struct file * , fl_owner_t ) ; int (*release)(struct inode * , struct file * ) ; int (*fsync)(struct file * , loff_t , loff_t , int ) ; int (*aio_fsync)(struct kiocb * , int ) ; int (*fasync)(int , struct file * , int ) ; int (*lock)(struct file * , int , struct file_lock * ) ; ssize_t (*sendpage)(struct file * , struct page * , int , size_t , loff_t * , int ) ; unsigned long (*get_unmapped_area)(struct file * , unsigned long , unsigned long , unsigned long , unsigned long ) ; int (*check_flags)(int ) ; int (*flock)(struct file * , int , struct file_lock * ) ; ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t , unsigned int ) ; ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t , unsigned int ) ; int (*setlease)(struct file * , long , struct file_lock ** ) ; long (*fallocate)(struct file * , int , loff_t , loff_t ) ; int (*show_fdinfo)(struct seq_file * , struct file * ) ; }; struct inode_operations { struct dentry *(*lookup)(struct inode * , struct dentry * , unsigned int ) ; void *(*follow_link)(struct dentry * , struct nameidata * ) ; int (*permission)(struct inode * , int ) ; struct posix_acl *(*get_acl)(struct inode * , int ) ; int (*readlink)(struct dentry * , char * , int ) ; void (*put_link)(struct dentry * , struct nameidata * , void * ) ; int (*create)(struct inode * , struct dentry * , umode_t , bool ) ; int (*link)(struct dentry * , struct inode * , struct dentry * ) ; int (*unlink)(struct inode * , struct dentry * ) ; int (*symlink)(struct inode * , struct dentry * , char const * ) ; int (*mkdir)(struct inode * , struct dentry * , umode_t ) ; int (*rmdir)(struct inode * , struct dentry * ) ; int (*mknod)(struct inode * , struct dentry * , umode_t , dev_t ) ; int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ; int (*setattr)(struct dentry * , struct iattr * ) ; int (*getattr)(struct vfsmount * , struct dentry * , struct kstat * ) ; int (*setxattr)(struct dentry * , char const * , void const * , size_t , int ) ; ssize_t (*getxattr)(struct dentry * , char const * , void * , size_t ) ; ssize_t (*listxattr)(struct dentry * , char * , size_t ) ; int (*removexattr)(struct dentry * , char const * ) ; int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64 , u64 ) ; int (*update_time)(struct inode * , struct timespec * , int ) ; int (*atomic_open)(struct inode * , struct dentry * , struct file * , unsigned int , umode_t , int * ) ; }; struct super_operations { struct inode *(*alloc_inode)(struct super_block * ) ; void (*destroy_inode)(struct inode * ) ; void (*dirty_inode)(struct inode * , int ) ; int (*write_inode)(struct inode * , struct writeback_control * ) ; int (*drop_inode)(struct inode * ) ; void (*evict_inode)(struct inode * ) ; void (*put_super)(struct super_block * ) ; int (*sync_fs)(struct super_block * , int ) ; int (*freeze_fs)(struct super_block * ) ; int (*unfreeze_fs)(struct super_block * ) ; int (*statfs)(struct dentry * , struct kstatfs * ) ; int (*remount_fs)(struct super_block * , int * , char * ) ; void (*umount_begin)(struct super_block * ) ; int (*show_options)(struct seq_file * , struct dentry * ) ; int (*show_devname)(struct seq_file * , struct dentry * ) ; int (*show_path)(struct seq_file * , struct dentry * ) ; int (*show_stats)(struct seq_file * , struct dentry * ) ; ssize_t (*quota_read)(struct super_block * , int , char * , size_t , loff_t ) ; ssize_t (*quota_write)(struct super_block * , int , char const * , size_t , loff_t ) ; int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t ) ; int (*nr_cached_objects)(struct super_block * ) ; void (*free_cached_objects)(struct super_block * , int ) ; }; struct file_system_type { char const *name ; int fs_flags ; struct dentry *(*mount)(struct file_system_type * , int , char const * , void * ) ; void (*kill_sb)(struct super_block * ) ; struct module *owner ; struct file_system_type *next ; struct hlist_head fs_supers ; struct lock_class_key s_lock_key ; struct lock_class_key s_umount_key ; struct lock_class_key s_vfs_rename_key ; struct lock_class_key s_writers_key[3U] ; struct lock_class_key i_lock_key ; struct lock_class_key i_mutex_key ; struct lock_class_key i_mutex_dir_key ; }; struct arch_uprobe_task { unsigned long saved_scratch_register ; unsigned int saved_trap_nr ; unsigned int saved_tf ; }; enum uprobe_task_state { UTASK_RUNNING = 0, UTASK_SSTEP = 1, UTASK_SSTEP_ACK = 2, UTASK_SSTEP_TRAPPED = 3 } ; struct uprobe; struct uprobe_task { enum uprobe_task_state state ; struct arch_uprobe_task autask ; struct uprobe *active_uprobe ; unsigned long xol_vaddr ; unsigned long vaddr ; }; struct xol_area { wait_queue_head_t wq ; atomic_t slot_count ; unsigned long *bitmap ; struct page *page ; unsigned long vaddr ; }; struct uprobes_state { struct xol_area *xol_area ; }; union __anonunion_ldv_15477_142 { unsigned long index ; void *freelist ; bool pfmemalloc ; }; struct __anonstruct_ldv_15487_146 { unsigned short inuse ; unsigned short objects : 15 ; unsigned char frozen : 1 ; }; union __anonunion_ldv_15489_145 { atomic_t _mapcount ; struct __anonstruct_ldv_15487_146 ldv_15487 ; int units ; }; struct __anonstruct_ldv_15491_144 { union __anonunion_ldv_15489_145 ldv_15489 ; atomic_t _count ; }; union __anonunion_ldv_15492_143 { unsigned long counters ; struct __anonstruct_ldv_15491_144 ldv_15491 ; }; struct __anonstruct_ldv_15493_141 { union __anonunion_ldv_15477_142 ldv_15477 ; union __anonunion_ldv_15492_143 ldv_15492 ; }; struct __anonstruct_ldv_15500_148 { struct page *next ; int pages ; int pobjects ; }; struct slab; union __anonunion_ldv_15504_147 { struct list_head lru ; struct __anonstruct_ldv_15500_148 ldv_15500 ; struct list_head list ; struct slab *slab_page ; }; union __anonunion_ldv_15509_149 { unsigned long private ; struct kmem_cache *slab_cache ; struct page *first_page ; }; struct page { unsigned long flags ; struct address_space *mapping ; struct __anonstruct_ldv_15493_141 ldv_15493 ; union __anonunion_ldv_15504_147 ldv_15504 ; union __anonunion_ldv_15509_149 ldv_15509 ; unsigned long debug_flags ; int _last_nid ; }; struct page_frag { struct page *page ; __u32 offset ; __u32 size ; }; struct __anonstruct_linear_151 { struct rb_node rb ; unsigned long rb_subtree_last ; }; union __anonunion_shared_150 { struct __anonstruct_linear_151 linear ; struct list_head nonlinear ; }; struct anon_vma; struct vm_operations_struct; struct mempolicy; struct vm_area_struct { unsigned long vm_start ; unsigned long vm_end ; struct vm_area_struct *vm_next ; struct vm_area_struct *vm_prev ; struct rb_node vm_rb ; unsigned long rb_subtree_gap ; struct mm_struct *vm_mm ; pgprot_t vm_page_prot ; unsigned long vm_flags ; union __anonunion_shared_150 shared ; struct list_head anon_vma_chain ; struct anon_vma *anon_vma ; struct vm_operations_struct const *vm_ops ; unsigned long vm_pgoff ; struct file *vm_file ; void *vm_private_data ; struct mempolicy *vm_policy ; }; struct core_thread { struct task_struct *task ; struct core_thread *next ; }; struct core_state { atomic_t nr_threads ; struct core_thread dumper ; struct completion startup ; }; struct mm_rss_stat { atomic_long_t count[3U] ; }; struct linux_binfmt; struct mmu_notifier_mm; struct mm_struct { struct vm_area_struct *mmap ; struct rb_root mm_rb ; struct vm_area_struct *mmap_cache ; unsigned long (*get_unmapped_area)(struct file * , unsigned long , unsigned long , unsigned long , unsigned long ) ; void (*unmap_area)(struct mm_struct * , unsigned long ) ; unsigned long mmap_base ; unsigned long task_size ; unsigned long cached_hole_size ; unsigned long free_area_cache ; unsigned long highest_vm_end ; pgd_t *pgd ; atomic_t mm_users ; atomic_t mm_count ; int map_count ; spinlock_t page_table_lock ; struct rw_semaphore mmap_sem ; struct list_head mmlist ; unsigned long hiwater_rss ; unsigned long hiwater_vm ; unsigned long total_vm ; unsigned long locked_vm ; unsigned long pinned_vm ; unsigned long shared_vm ; unsigned long exec_vm ; unsigned long stack_vm ; unsigned long def_flags ; unsigned long nr_ptes ; unsigned long start_code ; unsigned long end_code ; unsigned long start_data ; unsigned long end_data ; unsigned long start_brk ; unsigned long brk ; unsigned long start_stack ; unsigned long arg_start ; unsigned long arg_end ; unsigned long env_start ; unsigned long env_end ; unsigned long saved_auxv[44U] ; struct mm_rss_stat rss_stat ; struct linux_binfmt *binfmt ; cpumask_var_t cpu_vm_mask_var ; mm_context_t context ; unsigned long flags ; struct core_state *core_state ; spinlock_t ioctx_lock ; struct hlist_head ioctx_list ; struct task_struct *owner ; struct file *exe_file ; struct mmu_notifier_mm *mmu_notifier_mm ; pgtable_t pmd_huge_pte ; struct cpumask cpumask_allocation ; unsigned long numa_next_scan ; unsigned long numa_next_reset ; unsigned long numa_scan_offset ; int numa_scan_seq ; int first_nid ; struct uprobes_state uprobes_state ; }; typedef unsigned long cputime_t; struct sem_undo_list; struct sysv_sem { struct sem_undo_list *undo_list ; }; struct __anonstruct_sigset_t_152 { unsigned long sig[1U] ; }; typedef struct __anonstruct_sigset_t_152 sigset_t; struct siginfo; typedef void __signalfn_t(int ); typedef __signalfn_t *__sighandler_t; typedef void __restorefn_t(void); typedef __restorefn_t *__sigrestore_t; struct sigaction { __sighandler_t sa_handler ; unsigned long sa_flags ; __sigrestore_t sa_restorer ; sigset_t sa_mask ; }; struct k_sigaction { struct sigaction sa ; }; union sigval { int sival_int ; void *sival_ptr ; }; typedef union sigval sigval_t; struct __anonstruct__kill_154 { __kernel_pid_t _pid ; __kernel_uid32_t _uid ; }; struct __anonstruct__timer_155 { __kernel_timer_t _tid ; int _overrun ; char _pad[0U] ; sigval_t _sigval ; int _sys_private ; }; struct __anonstruct__rt_156 { __kernel_pid_t _pid ; __kernel_uid32_t _uid ; sigval_t _sigval ; }; struct __anonstruct__sigchld_157 { __kernel_pid_t _pid ; __kernel_uid32_t _uid ; int _status ; __kernel_clock_t _utime ; __kernel_clock_t _stime ; }; struct __anonstruct__sigfault_158 { void *_addr ; short _addr_lsb ; }; struct __anonstruct__sigpoll_159 { long _band ; int _fd ; }; struct __anonstruct__sigsys_160 { void *_call_addr ; int _syscall ; unsigned int _arch ; }; union __anonunion__sifields_153 { int _pad[28U] ; struct __anonstruct__kill_154 _kill ; struct __anonstruct__timer_155 _timer ; struct __anonstruct__rt_156 _rt ; struct __anonstruct__sigchld_157 _sigchld ; struct __anonstruct__sigfault_158 _sigfault ; struct __anonstruct__sigpoll_159 _sigpoll ; struct __anonstruct__sigsys_160 _sigsys ; }; struct siginfo { int si_signo ; int si_errno ; int si_code ; union __anonunion__sifields_153 _sifields ; }; typedef struct siginfo siginfo_t; struct user_struct; struct sigpending { struct list_head list ; sigset_t signal ; }; struct seccomp_filter; struct seccomp { int mode ; struct seccomp_filter *filter ; }; struct plist_head { struct list_head node_list ; }; struct plist_node { int prio ; struct list_head prio_list ; struct list_head node_list ; }; struct rt_mutex_waiter; struct rlimit { unsigned long rlim_cur ; unsigned long rlim_max ; }; struct timerqueue_node { struct rb_node node ; ktime_t expires ; }; struct timerqueue_head { struct rb_root head ; struct timerqueue_node *next ; }; struct hrtimer_clock_base; struct hrtimer_cpu_base; enum hrtimer_restart { HRTIMER_NORESTART = 0, HRTIMER_RESTART = 1 } ; struct hrtimer { struct timerqueue_node node ; ktime_t _softexpires ; enum hrtimer_restart (*function)(struct hrtimer * ) ; struct hrtimer_clock_base *base ; unsigned long state ; int start_pid ; void *start_site ; char start_comm[16U] ; }; struct hrtimer_clock_base { struct hrtimer_cpu_base *cpu_base ; int index ; clockid_t clockid ; struct timerqueue_head active ; ktime_t resolution ; ktime_t (*get_time)(void) ; ktime_t softirq_time ; ktime_t offset ; }; struct hrtimer_cpu_base { raw_spinlock_t lock ; unsigned int active_bases ; unsigned int clock_was_set ; ktime_t expires_next ; int hres_active ; int hang_detected ; unsigned long nr_events ; unsigned long nr_retries ; unsigned long nr_hangs ; ktime_t max_hang_time ; struct hrtimer_clock_base clock_base[3U] ; }; struct task_io_accounting { u64 rchar ; u64 wchar ; u64 syscr ; u64 syscw ; u64 read_bytes ; u64 write_bytes ; u64 cancelled_write_bytes ; }; struct latency_record { unsigned long backtrace[12U] ; unsigned int count ; unsigned long time ; unsigned long max ; }; struct nsproxy; typedef int32_t key_serial_t; typedef uint32_t key_perm_t; struct key; struct signal_struct; struct key_type; struct keyring_list; union __anonunion_ldv_18053_165 { struct list_head graveyard_link ; struct rb_node serial_node ; }; struct key_user; union __anonunion_ldv_18062_166 { time_t expiry ; time_t revoked_at ; }; union __anonunion_type_data_167 { struct list_head link ; unsigned long x[2U] ; void *p[2U] ; int reject_error ; }; union __anonunion_payload_168 { unsigned long value ; void *rcudata ; void *data ; struct keyring_list *subscriptions ; }; struct key { atomic_t usage ; key_serial_t serial ; union __anonunion_ldv_18053_165 ldv_18053 ; struct key_type *type ; struct rw_semaphore sem ; struct key_user *user ; void *security ; union __anonunion_ldv_18062_166 ldv_18062 ; time_t last_used_at ; kuid_t uid ; kgid_t gid ; key_perm_t perm ; unsigned short quotalen ; unsigned short datalen ; unsigned long flags ; char *description ; union __anonunion_type_data_167 type_data ; union __anonunion_payload_168 payload ; }; struct audit_context; struct group_info { atomic_t usage ; int ngroups ; int nblocks ; kgid_t small_block[32U] ; kgid_t *blocks[0U] ; }; struct thread_group_cred; struct cred { atomic_t usage ; atomic_t subscribers ; void *put_addr ; unsigned int magic ; kuid_t uid ; kgid_t gid ; kuid_t suid ; kgid_t sgid ; kuid_t euid ; kgid_t egid ; kuid_t fsuid ; kgid_t fsgid ; unsigned int securebits ; kernel_cap_t cap_inheritable ; kernel_cap_t cap_permitted ; kernel_cap_t cap_effective ; kernel_cap_t cap_bset ; unsigned char jit_keyring ; struct key *session_keyring ; struct key *process_keyring ; struct key *thread_keyring ; struct key *request_key_auth ; struct thread_group_cred *tgcred ; void *security ; struct user_struct *user ; struct user_namespace *user_ns ; struct group_info *group_info ; struct callback_head rcu ; }; struct llist_node; struct llist_node { struct llist_node *next ; }; struct futex_pi_state; struct robust_list_head; struct bio_list; struct fs_struct; struct perf_event_context; struct blk_plug; struct cfs_rq; struct task_group; struct io_event { __u64 data ; __u64 obj ; __s64 res ; __s64 res2 ; }; struct iovec { void *iov_base ; __kernel_size_t iov_len ; }; struct kvec { void *iov_base ; size_t iov_len ; }; struct kioctx; union __anonunion_ki_obj_169 { void *user ; struct task_struct *tsk ; }; struct eventfd_ctx; struct kiocb { struct list_head ki_run_list ; unsigned long ki_flags ; int ki_users ; unsigned int ki_key ; struct file *ki_filp ; struct kioctx *ki_ctx ; int (*ki_cancel)(struct kiocb * , struct io_event * ) ; ssize_t (*ki_retry)(struct kiocb * ) ; void (*ki_dtor)(struct kiocb * ) ; union __anonunion_ki_obj_169 ki_obj ; __u64 ki_user_data ; loff_t ki_pos ; void *private ; unsigned short ki_opcode ; size_t ki_nbytes ; char *ki_buf ; size_t ki_left ; struct iovec ki_inline_vec ; struct iovec *ki_iovec ; unsigned long ki_nr_segs ; unsigned long ki_cur_seg ; struct list_head ki_list ; struct list_head ki_batch ; struct eventfd_ctx *ki_eventfd ; }; struct aio_ring_info { unsigned long mmap_base ; unsigned long mmap_size ; struct page **ring_pages ; spinlock_t ring_lock ; long nr_pages ; unsigned int nr ; unsigned int tail ; struct page *internal_pages[8U] ; }; struct kioctx { atomic_t users ; int dead ; struct mm_struct *mm ; unsigned long user_id ; struct hlist_node list ; wait_queue_head_t wait ; spinlock_t ctx_lock ; int reqs_active ; struct list_head active_reqs ; struct list_head run_list ; unsigned int max_reqs ; struct aio_ring_info ring_info ; struct delayed_work wq ; struct callback_head callback_head ; }; struct sighand_struct { atomic_t count ; struct k_sigaction action[64U] ; spinlock_t siglock ; wait_queue_head_t signalfd_wqh ; }; struct pacct_struct { int ac_flag ; long ac_exitcode ; unsigned long ac_mem ; cputime_t ac_utime ; cputime_t ac_stime ; unsigned long ac_minflt ; unsigned long ac_majflt ; }; struct cpu_itimer { cputime_t expires ; cputime_t incr ; u32 error ; u32 incr_error ; }; struct cputime { cputime_t utime ; cputime_t stime ; }; struct task_cputime { cputime_t utime ; cputime_t stime ; unsigned long long sum_exec_runtime ; }; struct thread_group_cputimer { struct task_cputime cputime ; int running ; raw_spinlock_t lock ; }; struct autogroup; struct tty_struct; struct taskstats; struct tty_audit_buf; struct signal_struct { atomic_t sigcnt ; atomic_t live ; int nr_threads ; wait_queue_head_t wait_chldexit ; struct task_struct *curr_target ; struct sigpending shared_pending ; int group_exit_code ; int notify_count ; struct task_struct *group_exit_task ; int group_stop_count ; unsigned int flags ; unsigned char is_child_subreaper : 1 ; unsigned char has_child_subreaper : 1 ; struct list_head posix_timers ; struct hrtimer real_timer ; struct pid *leader_pid ; ktime_t it_real_incr ; struct cpu_itimer it[2U] ; struct thread_group_cputimer cputimer ; struct task_cputime cputime_expires ; struct list_head cpu_timers[3U] ; struct pid *tty_old_pgrp ; int leader ; struct tty_struct *tty ; struct autogroup *autogroup ; cputime_t utime ; cputime_t stime ; cputime_t cutime ; cputime_t cstime ; cputime_t gtime ; cputime_t cgtime ; struct cputime prev_cputime ; unsigned long nvcsw ; unsigned long nivcsw ; unsigned long cnvcsw ; unsigned long cnivcsw ; unsigned long min_flt ; unsigned long maj_flt ; unsigned long cmin_flt ; unsigned long cmaj_flt ; unsigned long inblock ; unsigned long oublock ; unsigned long cinblock ; unsigned long coublock ; unsigned long maxrss ; unsigned long cmaxrss ; struct task_io_accounting ioac ; unsigned long long sum_sched_runtime ; struct rlimit rlim[16U] ; struct pacct_struct pacct ; struct taskstats *stats ; unsigned int audit_tty ; struct tty_audit_buf *tty_audit_buf ; struct rw_semaphore group_rwsem ; oom_flags_t oom_flags ; short oom_score_adj ; short oom_score_adj_min ; struct mutex cred_guard_mutex ; }; struct user_struct { atomic_t __count ; atomic_t processes ; atomic_t files ; atomic_t sigpending ; atomic_t inotify_watches ; atomic_t inotify_devs ; atomic_t fanotify_listeners ; atomic_long_t epoll_watches ; unsigned long mq_bytes ; unsigned long locked_shm ; struct key *uid_keyring ; struct key *session_keyring ; struct hlist_node uidhash_node ; kuid_t uid ; atomic_long_t locked_vm ; }; struct reclaim_state; struct sched_info { unsigned long pcount ; unsigned long long run_delay ; unsigned long long last_arrival ; unsigned long long last_queued ; }; struct task_delay_info { spinlock_t lock ; unsigned int flags ; struct timespec blkio_start ; struct timespec blkio_end ; u64 blkio_delay ; u64 swapin_delay ; u32 blkio_count ; u32 swapin_count ; struct timespec freepages_start ; struct timespec freepages_end ; u64 freepages_delay ; u32 freepages_count ; }; struct rq; struct sched_class { struct sched_class const *next ; void (*enqueue_task)(struct rq * , struct task_struct * , int ) ; void (*dequeue_task)(struct rq * , struct task_struct * , int ) ; void (*yield_task)(struct rq * ) ; bool (*yield_to_task)(struct rq * , struct task_struct * , bool ) ; void (*check_preempt_curr)(struct rq * , struct task_struct * , int ) ; struct task_struct *(*pick_next_task)(struct rq * ) ; void (*put_prev_task)(struct rq * , struct task_struct * ) ; int (*select_task_rq)(struct task_struct * , int , int ) ; void (*migrate_task_rq)(struct task_struct * , int ) ; void (*pre_schedule)(struct rq * , struct task_struct * ) ; void (*post_schedule)(struct rq * ) ; void (*task_waking)(struct task_struct * ) ; void (*task_woken)(struct rq * , struct task_struct * ) ; void (*set_cpus_allowed)(struct task_struct * , struct cpumask const * ) ; void (*rq_online)(struct rq * ) ; void (*rq_offline)(struct rq * ) ; void (*set_curr_task)(struct rq * ) ; void (*task_tick)(struct rq * , struct task_struct * , int ) ; void (*task_fork)(struct task_struct * ) ; void (*switched_from)(struct rq * , struct task_struct * ) ; void (*switched_to)(struct rq * , struct task_struct * ) ; void (*prio_changed)(struct rq * , struct task_struct * , int ) ; unsigned int (*get_rr_interval)(struct rq * , struct task_struct * ) ; void (*task_move_group)(struct task_struct * , int ) ; }; struct load_weight { unsigned long weight ; unsigned long inv_weight ; }; struct sched_avg { u32 runnable_avg_sum ; u32 runnable_avg_period ; u64 last_runnable_update ; s64 decay_count ; unsigned long load_avg_contrib ; }; struct sched_statistics { u64 wait_start ; u64 wait_max ; u64 wait_count ; u64 wait_sum ; u64 iowait_count ; u64 iowait_sum ; u64 sleep_start ; u64 sleep_max ; s64 sum_sleep_runtime ; u64 block_start ; u64 block_max ; u64 exec_max ; u64 slice_max ; u64 nr_migrations_cold ; u64 nr_failed_migrations_affine ; u64 nr_failed_migrations_running ; u64 nr_failed_migrations_hot ; u64 nr_forced_migrations ; u64 nr_wakeups ; u64 nr_wakeups_sync ; u64 nr_wakeups_migrate ; u64 nr_wakeups_local ; u64 nr_wakeups_remote ; u64 nr_wakeups_affine ; u64 nr_wakeups_affine_attempts ; u64 nr_wakeups_passive ; u64 nr_wakeups_idle ; }; struct sched_entity { struct load_weight load ; struct rb_node run_node ; struct list_head group_node ; unsigned int on_rq ; u64 exec_start ; u64 sum_exec_runtime ; u64 vruntime ; u64 prev_sum_exec_runtime ; u64 nr_migrations ; struct sched_statistics statistics ; struct sched_entity *parent ; struct cfs_rq *cfs_rq ; struct cfs_rq *my_q ; struct sched_avg avg ; }; struct rt_rq; struct sched_rt_entity { struct list_head run_list ; unsigned long timeout ; unsigned int time_slice ; struct sched_rt_entity *back ; struct sched_rt_entity *parent ; struct rt_rq *rt_rq ; struct rt_rq *my_q ; }; struct mem_cgroup; struct memcg_batch_info { int do_batch ; struct mem_cgroup *memcg ; unsigned long nr_pages ; unsigned long memsw_nr_pages ; }; struct css_set; struct compat_robust_list_head; struct task_struct { long volatile state ; void *stack ; atomic_t usage ; unsigned int flags ; unsigned int ptrace ; struct llist_node wake_entry ; int on_cpu ; int on_rq ; int prio ; int static_prio ; int normal_prio ; unsigned int rt_priority ; struct sched_class const *sched_class ; struct sched_entity se ; struct sched_rt_entity rt ; struct task_group *sched_task_group ; struct hlist_head preempt_notifiers ; unsigned char fpu_counter ; unsigned int policy ; int nr_cpus_allowed ; cpumask_t cpus_allowed ; struct sched_info sched_info ; struct list_head tasks ; struct plist_node pushable_tasks ; struct mm_struct *mm ; struct mm_struct *active_mm ; unsigned char brk_randomized : 1 ; int exit_state ; int exit_code ; int exit_signal ; int pdeath_signal ; unsigned int jobctl ; unsigned int personality ; unsigned char did_exec : 1 ; unsigned char in_execve : 1 ; unsigned char in_iowait : 1 ; unsigned char no_new_privs : 1 ; unsigned char sched_reset_on_fork : 1 ; unsigned char sched_contributes_to_load : 1 ; pid_t pid ; pid_t tgid ; unsigned long stack_canary ; struct task_struct *real_parent ; struct task_struct *parent ; struct list_head children ; struct list_head sibling ; struct task_struct *group_leader ; struct list_head ptraced ; struct list_head ptrace_entry ; struct pid_link pids[3U] ; struct list_head thread_group ; struct completion *vfork_done ; int *set_child_tid ; int *clear_child_tid ; cputime_t utime ; cputime_t stime ; cputime_t utimescaled ; cputime_t stimescaled ; cputime_t gtime ; struct cputime prev_cputime ; unsigned long nvcsw ; unsigned long nivcsw ; struct timespec start_time ; struct timespec real_start_time ; unsigned long min_flt ; unsigned long maj_flt ; struct task_cputime cputime_expires ; struct list_head cpu_timers[3U] ; struct cred const *real_cred ; struct cred const *cred ; char comm[16U] ; int link_count ; int total_link_count ; struct sysv_sem sysvsem ; unsigned long last_switch_count ; struct thread_struct thread ; struct fs_struct *fs ; struct files_struct *files ; struct nsproxy *nsproxy ; struct signal_struct *signal ; struct sighand_struct *sighand ; sigset_t blocked ; sigset_t real_blocked ; sigset_t saved_sigmask ; struct sigpending pending ; unsigned long sas_ss_sp ; size_t sas_ss_size ; int (*notifier)(void * ) ; void *notifier_data ; sigset_t *notifier_mask ; struct callback_head *task_works ; struct audit_context *audit_context ; kuid_t loginuid ; unsigned int sessionid ; struct seccomp seccomp ; u32 parent_exec_id ; u32 self_exec_id ; spinlock_t alloc_lock ; raw_spinlock_t pi_lock ; struct plist_head pi_waiters ; struct rt_mutex_waiter *pi_blocked_on ; struct mutex_waiter *blocked_on ; unsigned int irq_events ; unsigned long hardirq_enable_ip ; unsigned long hardirq_disable_ip ; unsigned int hardirq_enable_event ; unsigned int hardirq_disable_event ; int hardirqs_enabled ; int hardirq_context ; unsigned long softirq_disable_ip ; unsigned long softirq_enable_ip ; unsigned int softirq_disable_event ; unsigned int softirq_enable_event ; int softirqs_enabled ; int softirq_context ; u64 curr_chain_key ; int lockdep_depth ; unsigned int lockdep_recursion ; struct held_lock held_locks[48U] ; gfp_t lockdep_reclaim_gfp ; void *journal_info ; struct bio_list *bio_list ; struct blk_plug *plug ; struct reclaim_state *reclaim_state ; struct backing_dev_info *backing_dev_info ; struct io_context *io_context ; unsigned long ptrace_message ; siginfo_t *last_siginfo ; struct task_io_accounting ioac ; u64 acct_rss_mem1 ; u64 acct_vm_mem1 ; cputime_t acct_timexpd ; nodemask_t mems_allowed ; seqcount_t mems_allowed_seq ; int cpuset_mem_spread_rotor ; int cpuset_slab_spread_rotor ; struct css_set *cgroups ; struct list_head cg_list ; struct robust_list_head *robust_list ; struct compat_robust_list_head *compat_robust_list ; struct list_head pi_state_list ; struct futex_pi_state *pi_state_cache ; struct perf_event_context *perf_event_ctxp[2U] ; struct mutex perf_event_mutex ; struct list_head perf_event_list ; struct mempolicy *mempolicy ; short il_next ; short pref_node_fork ; int numa_scan_seq ; int numa_migrate_seq ; unsigned int numa_scan_period ; u64 node_stamp ; struct callback_head numa_work ; struct callback_head rcu ; struct pipe_inode_info *splice_pipe ; struct page_frag task_frag ; struct task_delay_info *delays ; int make_it_fail ; int nr_dirtied ; int nr_dirtied_pause ; unsigned long dirty_paused_when ; int latency_record_count ; struct latency_record latency_record[32U] ; unsigned long timer_slack_ns ; unsigned long default_timer_slack_ns ; unsigned long trace ; unsigned long trace_recursion ; struct memcg_batch_info memcg_batch ; unsigned int memcg_kmem_skip_account ; atomic_t ptrace_bp_refcnt ; struct uprobe_task *utask ; }; enum writeback_sync_modes { WB_SYNC_NONE = 0, WB_SYNC_ALL = 1 } ; struct writeback_control { long nr_to_write ; long pages_skipped ; loff_t range_start ; loff_t range_end ; enum writeback_sync_modes sync_mode ; unsigned char for_kupdate : 1 ; unsigned char for_background : 1 ; unsigned char tagged_writepages : 1 ; unsigned char for_reclaim : 1 ; unsigned char range_cyclic : 1 ; }; struct bdi_writeback; typedef int congested_fn(void * , int ); struct bdi_writeback { struct backing_dev_info *bdi ; unsigned int nr ; unsigned long last_old_flush ; unsigned long last_active ; struct task_struct *task ; struct timer_list wakeup_timer ; struct list_head b_dirty ; struct list_head b_io ; struct list_head b_more_io ; spinlock_t list_lock ; }; struct backing_dev_info { struct list_head bdi_list ; unsigned long ra_pages ; unsigned long state ; unsigned int capabilities ; congested_fn *congested_fn ; void *congested_data ; char *name ; struct percpu_counter bdi_stat[4U] ; unsigned long bw_time_stamp ; unsigned long dirtied_stamp ; unsigned long written_stamp ; unsigned long write_bandwidth ; unsigned long avg_write_bandwidth ; unsigned long dirty_ratelimit ; unsigned long balanced_dirty_ratelimit ; struct fprop_local_percpu completions ; int dirty_exceeded ; unsigned int min_ratio ; unsigned int max_ratio ; unsigned int max_prop_frac ; struct bdi_writeback wb ; spinlock_t wb_lock ; struct list_head work_list ; struct device *dev ; struct timer_list laptop_mode_wb_timer ; struct dentry *debug_dir ; struct dentry *debug_stats ; }; typedef __u64 Elf64_Addr; typedef __u16 Elf64_Half; typedef __u32 Elf64_Word; typedef __u64 Elf64_Xword; struct elf64_sym { Elf64_Word st_name ; unsigned char st_info ; unsigned char st_other ; Elf64_Half st_shndx ; Elf64_Addr st_value ; Elf64_Xword st_size ; }; typedef struct elf64_sym Elf64_Sym; struct sock; enum kobj_ns_type { KOBJ_NS_TYPE_NONE = 0, KOBJ_NS_TYPE_NET = 1, KOBJ_NS_TYPES = 2 } ; struct kobj_ns_type_operations { enum kobj_ns_type type ; void *(*grab_current_ns)(void) ; void const *(*netlink_ns)(struct sock * ) ; void const *(*initial_ns)(void) ; void (*drop_ns)(void * ) ; }; struct attribute { char const *name ; umode_t mode ; bool ignore_lockdep ; struct lock_class_key *key ; struct lock_class_key skey ; }; struct sysfs_ops { ssize_t (*show)(struct kobject * , struct attribute * , char * ) ; ssize_t (*store)(struct kobject * , struct attribute * , char const * , size_t ) ; void const *(*namespace)(struct kobject * , struct attribute const * ) ; }; struct sysfs_dirent; struct kref { atomic_t refcount ; }; struct kset; struct kobj_type; struct kobject { char const *name ; struct list_head entry ; struct kobject *parent ; struct kset *kset ; struct kobj_type *ktype ; struct sysfs_dirent *sd ; struct kref kref ; unsigned char state_initialized : 1 ; unsigned char state_in_sysfs : 1 ; unsigned char state_add_uevent_sent : 1 ; unsigned char state_remove_uevent_sent : 1 ; unsigned char uevent_suppress : 1 ; }; struct kobj_type { void (*release)(struct kobject * ) ; struct sysfs_ops const *sysfs_ops ; struct attribute **default_attrs ; struct kobj_ns_type_operations const *(*child_ns_type)(struct kobject * ) ; void const *(*namespace)(struct kobject * ) ; }; struct kobj_uevent_env { char *envp[32U] ; int envp_idx ; char buf[2048U] ; int buflen ; }; struct kset_uevent_ops { int (* const filter)(struct kset * , struct kobject * ) ; char const *(* const name)(struct kset * , struct kobject * ) ; int (* const uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ; }; struct kset { struct list_head list ; spinlock_t list_lock ; struct kobject kobj ; struct kset_uevent_ops const *uevent_ops ; }; struct kernel_param; struct kernel_param_ops { int (*set)(char const * , struct kernel_param const * ) ; int (*get)(char * , struct kernel_param const * ) ; void (*free)(void * ) ; }; struct kparam_string; struct kparam_array; union __anonunion_ldv_21241_176 { void *arg ; struct kparam_string const *str ; struct kparam_array const *arr ; }; struct kernel_param { char const *name ; struct kernel_param_ops const *ops ; u16 perm ; s16 level ; union __anonunion_ldv_21241_176 ldv_21241 ; }; struct kparam_string { unsigned int maxlen ; char *string ; }; struct kparam_array { unsigned int max ; unsigned int elemsize ; unsigned int *num ; struct kernel_param_ops const *ops ; void *elem ; }; struct static_key { atomic_t enabled ; }; struct tracepoint; struct tracepoint_func { void *func ; void *data ; }; struct tracepoint { char const *name ; struct static_key key ; void (*regfunc)(void) ; void (*unregfunc)(void) ; struct tracepoint_func *funcs ; }; struct kernel_symbol { unsigned long value ; char const *name ; }; struct mod_arch_specific { }; struct module_param_attrs; struct module_kobject { struct kobject kobj ; struct module *mod ; struct kobject *drivers_dir ; struct module_param_attrs *mp ; }; struct module_attribute { struct attribute attr ; ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ; ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const * , size_t ) ; void (*setup)(struct module * , char const * ) ; int (*test)(struct module * ) ; void (*free)(struct module * ) ; }; struct exception_table_entry; enum module_state { MODULE_STATE_LIVE = 0, MODULE_STATE_COMING = 1, MODULE_STATE_GOING = 2 } ; struct module_ref { unsigned long incs ; unsigned long decs ; }; struct module_sect_attrs; struct module_notes_attrs; struct ftrace_event_call; struct module { enum module_state state ; struct list_head list ; char name[56U] ; struct module_kobject mkobj ; struct module_attribute *modinfo_attrs ; char const *version ; char const *srcversion ; struct kobject *holders_dir ; struct kernel_symbol const *syms ; unsigned long const *crcs ; unsigned int num_syms ; struct kernel_param *kp ; unsigned int num_kp ; unsigned int num_gpl_syms ; struct kernel_symbol const *gpl_syms ; unsigned long const *gpl_crcs ; struct kernel_symbol const *unused_syms ; unsigned long const *unused_crcs ; unsigned int num_unused_syms ; unsigned int num_unused_gpl_syms ; struct kernel_symbol const *unused_gpl_syms ; unsigned long const *unused_gpl_crcs ; struct kernel_symbol const *gpl_future_syms ; unsigned long const *gpl_future_crcs ; unsigned int num_gpl_future_syms ; unsigned int num_exentries ; struct exception_table_entry *extable ; int (*init)(void) ; void *module_init ; void *module_core ; unsigned int init_size ; unsigned int core_size ; unsigned int init_text_size ; unsigned int core_text_size ; unsigned int init_ro_size ; unsigned int core_ro_size ; struct mod_arch_specific arch ; unsigned int taints ; unsigned int num_bugs ; struct list_head bug_list ; struct bug_entry *bug_table ; Elf64_Sym *symtab ; Elf64_Sym *core_symtab ; unsigned int num_symtab ; unsigned int core_num_syms ; char *strtab ; char *core_strtab ; struct module_sect_attrs *sect_attrs ; struct module_notes_attrs *notes_attrs ; char *args ; void *percpu ; unsigned int percpu_size ; unsigned int num_tracepoints ; struct tracepoint * const *tracepoints_ptrs ; unsigned int num_trace_bprintk_fmt ; char const **trace_bprintk_fmt_start ; struct ftrace_event_call **trace_events ; unsigned int num_trace_events ; struct list_head source_list ; struct list_head target_list ; struct task_struct *waiter ; void (*exit)(void) ; struct module_ref *refptr ; ctor_fn_t (**ctors)(void) ; unsigned int num_ctors ; }; struct vfsmount { struct dentry *mnt_root ; struct super_block *mnt_sb ; int mnt_flags ; }; struct match_token { int token ; char const *pattern ; }; struct __anonstruct_substring_t_177 { char *from ; char *to ; }; typedef struct __anonstruct_substring_t_177 substring_t; struct seq_file { char *buf ; size_t size ; size_t from ; size_t count ; loff_t index ; loff_t read_pos ; u64 version ; struct mutex lock ; struct seq_operations const *op ; int poll_event ; void *private ; }; struct seq_operations { void *(*start)(struct seq_file * , loff_t * ) ; void (*stop)(struct seq_file * , void * ) ; void *(*next)(struct seq_file * , void * , loff_t * ) ; int (*show)(struct seq_file * , void * ) ; }; struct __anonstruct_ldv_21997_179 { struct mem_cgroup *memcg ; struct list_head list ; struct kmem_cache *root_cache ; bool dead ; atomic_t nr_pages ; struct work_struct destroy ; }; union __anonunion_ldv_21998_178 { struct kmem_cache *memcg_caches[0U] ; struct __anonstruct_ldv_21997_179 ldv_21997 ; }; struct memcg_cache_params { bool is_root_cache ; union __anonunion_ldv_21998_178 ldv_21998 ; }; struct kmem_cache_cpu { void **freelist ; unsigned long tid ; struct page *page ; struct page *partial ; unsigned int stat[26U] ; }; struct kmem_cache_node { spinlock_t list_lock ; unsigned long nr_partial ; struct list_head partial ; atomic_long_t nr_slabs ; atomic_long_t total_objects ; struct list_head full ; }; struct kmem_cache_order_objects { unsigned long x ; }; struct kmem_cache { struct kmem_cache_cpu *cpu_slab ; unsigned long flags ; unsigned long min_partial ; int size ; int object_size ; int offset ; int cpu_partial ; struct kmem_cache_order_objects oo ; struct kmem_cache_order_objects max ; struct kmem_cache_order_objects min ; gfp_t allocflags ; int refcount ; void (*ctor)(void * ) ; int inuse ; int align ; int reserved ; char const *name ; struct list_head list ; struct kobject kobj ; struct memcg_cache_params *memcg_params ; int max_attr_size ; int remote_node_defrag_ratio ; struct kmem_cache_node *node[1024U] ; }; struct kstatfs { long f_type ; long f_bsize ; u64 f_blocks ; u64 f_bfree ; u64 f_bavail ; u64 f_files ; u64 f_ffree ; __kernel_fsid_t f_fsid ; long f_namelen ; long f_frsize ; long f_flags ; long f_spare[4U] ; }; struct __anonstruct_i32_181 { u32 ino ; u32 gen ; u32 parent_ino ; u32 parent_gen ; }; struct __anonstruct_udf_182 { u32 block ; u16 partref ; u16 parent_partref ; u32 generation ; u32 parent_block ; u32 parent_generation ; }; union __anonunion_ldv_22354_180 { struct __anonstruct_i32_181 i32 ; struct __anonstruct_udf_182 udf ; __u32 raw[0U] ; }; struct fid { union __anonunion_ldv_22354_180 ldv_22354 ; }; struct export_operations { int (*encode_fh)(struct inode * , __u32 * , int * , struct inode * ) ; struct dentry *(*fh_to_dentry)(struct super_block * , struct fid * , int , int ) ; struct dentry *(*fh_to_parent)(struct super_block * , struct fid * , int , int ) ; int (*get_name)(struct dentry * , char * , struct dentry * ) ; struct dentry *(*get_parent)(struct dentry * ) ; int (*commit_metadata)(struct inode * ) ; }; typedef void *mempool_alloc_t(gfp_t , void * ); typedef void mempool_free_t(void * , void * ); struct mempool_s { spinlock_t lock ; int min_nr ; int curr_nr ; void **elements ; void *pool_data ; mempool_alloc_t *alloc ; mempool_free_t *free ; wait_queue_head_t wait ; }; typedef struct mempool_s mempool_t; struct vm_fault { unsigned int flags ; unsigned long pgoff ; void *virtual_address ; struct page *page ; }; struct vm_operations_struct { void (*open)(struct vm_area_struct * ) ; void (*close)(struct vm_area_struct * ) ; int (*fault)(struct vm_area_struct * , struct vm_fault * ) ; int (*page_mkwrite)(struct vm_area_struct * , struct vm_fault * ) ; int (*access)(struct vm_area_struct * , unsigned long , void * , int , int ) ; int (*set_policy)(struct vm_area_struct * , struct mempolicy * ) ; struct mempolicy *(*get_policy)(struct vm_area_struct * , unsigned long ) ; int (*migrate)(struct vm_area_struct * , nodemask_t const * , nodemask_t const * , unsigned long ) ; int (*remap_pages)(struct vm_area_struct * , unsigned long , unsigned long , unsigned long ) ; }; struct exception_table_entry { int insn ; int fixup ; }; typedef unsigned short __kernel_sa_family_t; struct __kernel_sockaddr_storage { __kernel_sa_family_t ss_family ; char __data[126U] ; }; typedef __kernel_sa_family_t sa_family_t; struct sockaddr { sa_family_t sa_family ; char sa_data[14U] ; }; struct msghdr { void *msg_name ; int msg_namelen ; struct iovec *msg_iov ; __kernel_size_t msg_iovlen ; void *msg_control ; __kernel_size_t msg_controllen ; unsigned int msg_flags ; }; struct ceph_entity_name { __u8 type ; __le64 num ; }; struct ceph_entity_addr { __le32 type ; __le32 nonce ; struct __kernel_sockaddr_storage in_addr ; }; struct ceph_entity_inst { struct ceph_entity_name name ; struct ceph_entity_addr addr ; }; struct ceph_msg_connect { __le64 features ; __le32 host_type ; __le32 global_seq ; __le32 connect_seq ; __le32 protocol_version ; __le32 authorizer_protocol ; __le32 authorizer_len ; __u8 flags ; }; struct ceph_msg_connect_reply { __u8 tag ; __le64 features ; __le32 global_seq ; __le32 connect_seq ; __le32 protocol_version ; __le32 authorizer_len ; __u8 flags ; }; struct ceph_msg_header { __le64 seq ; __le64 tid ; __le16 type ; __le16 priority ; __le16 version ; __le32 front_len ; __le32 middle_len ; __le32 data_len ; __le16 data_off ; struct ceph_entity_name src ; __le32 reserved ; __le32 crc ; }; struct ceph_msg_footer { __le32 front_crc ; __le32 middle_crc ; __le32 data_crc ; __u8 flags ; }; struct ceph_fsid { unsigned char fsid[16U] ; }; struct ceph_timespec { __le32 tv_sec ; __le32 tv_nsec ; }; struct ceph_file_layout { __le32 fl_stripe_unit ; __le32 fl_stripe_count ; __le32 fl_object_size ; __le32 fl_cas_hash ; __le32 fl_object_stripe_unit ; __le32 fl_unused ; __le32 fl_pg_pool ; }; struct ceph_dir_layout { __u8 dl_dir_hash ; __u8 dl_unused1 ; __u16 dl_unused2 ; __u32 dl_unused3 ; }; struct ceph_statfs { __le64 kb ; __le64 kb_used ; __le64 kb_avail ; __le64 num_objects ; }; struct __anonstruct_getattr_191 { __le32 mask ; }; struct __anonstruct_setattr_192 { __le32 mode ; __le32 uid ; __le32 gid ; struct ceph_timespec mtime ; struct ceph_timespec atime ; __le64 size ; __le64 old_size ; __le32 mask ; }; struct __anonstruct_readdir_193 { __le32 frag ; __le32 max_entries ; __le32 max_bytes ; }; struct __anonstruct_mknod_194 { __le32 mode ; __le32 rdev ; }; struct __anonstruct_mkdir_195 { __le32 mode ; }; struct __anonstruct_open_196 { __le32 flags ; __le32 mode ; __le32 stripe_unit ; __le32 stripe_count ; __le32 object_size ; __le32 file_replication ; __le32 unused ; }; struct __anonstruct_setxattr_197 { __le32 flags ; }; struct __anonstruct_setlayout_198 { struct ceph_file_layout layout ; }; struct __anonstruct_filelock_change_199 { __u8 rule ; __u8 type ; __le64 pid ; __le64 pid_namespace ; __le64 start ; __le64 length ; __u8 wait ; }; union ceph_mds_request_args { struct __anonstruct_getattr_191 getattr ; struct __anonstruct_setattr_192 setattr ; struct __anonstruct_readdir_193 readdir ; struct __anonstruct_mknod_194 mknod ; struct __anonstruct_mkdir_195 mkdir ; struct __anonstruct_open_196 open ; struct __anonstruct_setxattr_197 setxattr ; struct __anonstruct_setlayout_198 setlayout ; struct __anonstruct_filelock_change_199 filelock_change ; }; struct ceph_mds_reply_head { __le32 op ; __le32 result ; __le32 mdsmap_epoch ; __u8 safe ; __u8 is_dentry ; __u8 is_target ; }; struct ceph_frag_tree_split { __le32 frag ; __le32 by ; }; struct ceph_frag_tree_head { __le32 nsplits ; struct ceph_frag_tree_split splits[] ; }; struct ceph_mds_reply_cap { __le32 caps ; __le32 wanted ; __le64 cap_id ; __le32 seq ; __le32 mseq ; __le64 realm ; __u8 flags ; }; struct ceph_mds_reply_inode { __le64 ino ; __le64 snapid ; __le32 rdev ; __le64 version ; __le64 xattr_version ; struct ceph_mds_reply_cap cap ; struct ceph_file_layout layout ; struct ceph_timespec ctime ; struct ceph_timespec mtime ; struct ceph_timespec atime ; __le32 time_warp_seq ; __le64 size ; __le64 max_size ; __le64 truncate_size ; __le32 truncate_seq ; __le32 mode ; __le32 uid ; __le32 gid ; __le32 nlink ; __le64 files ; __le64 subdirs ; __le64 rbytes ; __le64 rfiles ; __le64 rsubdirs ; struct ceph_timespec rctime ; struct ceph_frag_tree_head fragtree ; }; struct ceph_mds_reply_lease { __le16 mask ; __le32 duration_ms ; __le32 seq ; }; struct ceph_mds_reply_dirfrag { __le32 frag ; __le32 auth ; __le32 ndist ; __le32 dist[] ; }; struct ceph_filelock { __le64 start ; __le64 length ; __le64 client ; __le64 pid ; __le64 pid_namespace ; __u8 type ; }; struct ceph_vino { u64 ino ; u64 snap ; }; struct ceph_cap_reservation { int count ; }; enum ldv_22023 { SS_FREE = 0, SS_UNCONNECTED = 1, SS_CONNECTING = 2, SS_CONNECTED = 3, SS_DISCONNECTING = 4 } ; typedef enum ldv_22023 socket_state; struct socket_wq { wait_queue_head_t wait ; struct fasync_struct *fasync_list ; struct callback_head rcu ; }; struct proto_ops; struct socket { socket_state state ; short type ; unsigned long flags ; struct socket_wq *wq ; struct file *file ; struct sock *sk ; struct proto_ops const *ops ; }; struct proto_ops { int family ; struct module *owner ; int (*release)(struct socket * ) ; int (*bind)(struct socket * , struct sockaddr * , int ) ; int (*connect)(struct socket * , struct sockaddr * , int , int ) ; int (*socketpair)(struct socket * , struct socket * ) ; int (*accept)(struct socket * , struct socket * , int ) ; int (*getname)(struct socket * , struct sockaddr * , int * , int ) ; unsigned int (*poll)(struct file * , struct socket * , struct poll_table_struct * ) ; int (*ioctl)(struct socket * , unsigned int , unsigned long ) ; int (*compat_ioctl)(struct socket * , unsigned int , unsigned long ) ; int (*listen)(struct socket * , int ) ; int (*shutdown)(struct socket * , int ) ; int (*setsockopt)(struct socket * , int , int , char * , unsigned int ) ; int (*getsockopt)(struct socket * , int , int , char * , int * ) ; int (*compat_setsockopt)(struct socket * , int , int , char * , unsigned int ) ; int (*compat_getsockopt)(struct socket * , int , int , char * , int * ) ; int (*sendmsg)(struct kiocb * , struct socket * , struct msghdr * , size_t ) ; int (*recvmsg)(struct kiocb * , struct socket * , struct msghdr * , size_t , int ) ; int (*mmap)(struct file * , struct socket * , struct vm_area_struct * ) ; ssize_t (*sendpage)(struct socket * , struct page * , int , size_t , int ) ; ssize_t (*splice_read)(struct socket * , loff_t * , struct pipe_inode_info * , size_t , unsigned int ) ; void (*set_peek_off)(struct sock * , int ) ; }; struct ceph_buffer { struct kref kref ; struct kvec vec ; size_t alloc_len ; bool is_vmalloc ; }; struct ceph_msg; struct ceph_connection; struct ceph_auth_handshake; struct ceph_connection_operations { struct ceph_connection *(*get)(struct ceph_connection * ) ; void (*put)(struct ceph_connection * ) ; void (*dispatch)(struct ceph_connection * , struct ceph_msg * ) ; struct ceph_auth_handshake *(*get_authorizer)(struct ceph_connection * , int * , int ) ; int (*verify_authorizer_reply)(struct ceph_connection * , int ) ; int (*invalidate_authorizer)(struct ceph_connection * ) ; void (*fault)(struct ceph_connection * ) ; void (*peer_reset)(struct ceph_connection * ) ; struct ceph_msg *(*alloc_msg)(struct ceph_connection * , struct ceph_msg_header * , int * ) ; }; struct ceph_messenger { struct ceph_entity_inst inst ; struct ceph_entity_addr my_enc_addr ; atomic_t stopping ; bool nocrc ; u32 global_seq ; spinlock_t global_seq_lock ; u32 supported_features ; u32 required_features ; }; struct ceph_pagelist; struct ceph_msgpool; struct ceph_msg { struct ceph_msg_header hdr ; struct ceph_msg_footer footer ; struct kvec front ; struct ceph_buffer *middle ; struct page **pages ; unsigned int nr_pages ; unsigned int page_alignment ; struct ceph_pagelist *pagelist ; struct ceph_connection *con ; struct list_head list_head ; struct kref kref ; struct bio *bio ; struct bio *bio_iter ; int bio_seg ; struct ceph_pagelist *trail ; bool front_is_vmalloc ; bool more_to_follow ; bool needs_out_seq ; int front_max ; unsigned long ack_stamp ; struct ceph_msgpool *pool ; }; struct ceph_msg_pos { int page ; int page_pos ; int data_pos ; bool did_page_crc ; }; struct ceph_connection { void *private ; struct ceph_connection_operations const *ops ; struct ceph_messenger *msgr ; atomic_t sock_state ; struct socket *sock ; struct ceph_entity_addr peer_addr ; struct ceph_entity_addr peer_addr_for_me ; unsigned long flags ; unsigned long state ; char const *error_msg ; struct ceph_entity_name peer_name ; unsigned int peer_features ; u32 connect_seq ; u32 peer_global_seq ; int auth_retry ; void *auth_reply_buf ; int auth_reply_buf_len ; struct mutex mutex ; struct list_head out_queue ; struct list_head out_sent ; u64 out_seq ; u64 in_seq ; u64 in_seq_acked ; char in_banner[30U] ; struct ceph_msg_connect out_connect ; struct ceph_msg_connect_reply in_reply ; struct ceph_entity_addr actual_peer_addr ; struct ceph_msg *out_msg ; bool out_msg_done ; struct ceph_msg_pos out_msg_pos ; struct kvec out_kvec[8U] ; struct kvec *out_kvec_cur ; int out_kvec_left ; int out_skip ; int out_kvec_bytes ; bool out_kvec_is_msg ; int out_more ; __le64 out_temp_ack ; struct ceph_msg_header in_hdr ; struct ceph_msg *in_msg ; struct ceph_msg_pos in_msg_pos ; u32 in_front_crc ; u32 in_middle_crc ; u32 in_data_crc ; char in_tag ; int in_base_pos ; __le64 in_temp_ack ; struct delayed_work work ; unsigned long delay ; }; struct ceph_msgpool { char const *name ; mempool_t *pool ; int type ; int front_len ; }; struct ceph_client; struct ceph_auth_client; struct ceph_monmap { struct ceph_fsid fsid ; u32 epoch ; u32 num_mon ; struct ceph_entity_inst mon_inst[0U] ; }; struct ceph_mon_client; struct ceph_mon_client { struct ceph_client *client ; struct ceph_monmap *monmap ; struct mutex mutex ; struct delayed_work delayed_work ; struct ceph_auth_client *auth ; struct ceph_msg *m_auth ; struct ceph_msg *m_auth_reply ; struct ceph_msg *m_subscribe ; struct ceph_msg *m_subscribe_ack ; int pending_auth ; bool hunting ; int cur_mon ; unsigned long sub_sent ; unsigned long sub_renew_after ; struct ceph_connection con ; struct rb_root generic_request_tree ; int num_generic_requests ; u64 last_tid ; int want_mdsmap ; int want_next_osdmap ; u32 have_osdmap ; u32 have_mdsmap ; struct dentry *debugfs_file ; }; struct crush_rule_step { __u32 op ; __s32 arg1 ; __s32 arg2 ; }; struct crush_rule_mask { __u8 ruleset ; __u8 type ; __u8 min_size ; __u8 max_size ; }; struct crush_rule { __u32 len ; struct crush_rule_mask mask ; struct crush_rule_step steps[0U] ; }; struct crush_bucket { __s32 id ; __u16 type ; __u8 alg ; __u8 hash ; __u32 weight ; __u32 size ; __s32 *items ; __u32 perm_x ; __u32 perm_n ; __u32 *perm ; }; struct crush_map { struct crush_bucket **buckets ; struct crush_rule **rules ; __s32 max_buckets ; __u32 max_rules ; __s32 max_devices ; __u32 choose_local_tries ; __u32 choose_local_fallback_tries ; __u32 choose_total_tries ; }; struct ceph_osdmap { struct ceph_fsid fsid ; u32 epoch ; u32 mkfs_epoch ; struct ceph_timespec created ; struct ceph_timespec modified ; u32 flags ; u32 max_osd ; u8 *osd_state ; u32 *osd_weight ; struct ceph_entity_addr *osd_addr ; struct rb_root pg_temp ; struct rb_root pg_pools ; u32 pool_max ; struct crush_map *crush ; }; struct ceph_authorizer; struct ceph_auth_handshake { struct ceph_authorizer *authorizer ; void *authorizer_buf ; size_t authorizer_buf_len ; void *authorizer_reply_buf ; size_t authorizer_reply_buf_len ; }; struct ceph_auth_client_ops { char const *name ; int (*is_authenticated)(struct ceph_auth_client * ) ; int (*should_authenticate)(struct ceph_auth_client * ) ; int (*build_request)(struct ceph_auth_client * , void * , void * ) ; int (*handle_reply)(struct ceph_auth_client * , int , void * , void * ) ; int (*create_authorizer)(struct ceph_auth_client * , int , struct ceph_auth_handshake * ) ; int (*verify_authorizer_reply)(struct ceph_auth_client * , struct ceph_authorizer * , size_t ) ; void (*destroy_authorizer)(struct ceph_auth_client * , struct ceph_authorizer * ) ; void (*invalidate_authorizer)(struct ceph_auth_client * , int ) ; void (*reset)(struct ceph_auth_client * ) ; void (*destroy)(struct ceph_auth_client * ) ; }; struct ceph_crypto_key; struct ceph_auth_client { u32 protocol ; void *private ; struct ceph_auth_client_ops const *ops ; bool negotiating ; char const *name ; u64 global_id ; struct ceph_crypto_key const *key ; unsigned int want_keys ; }; struct ceph_snap_context; struct ceph_osd_client; struct ceph_osd_client { struct ceph_client *client ; struct ceph_osdmap *osdmap ; struct rw_semaphore map_sem ; struct completion map_waiters ; u64 last_requested_map ; struct mutex request_mutex ; struct rb_root osds ; struct list_head osd_lru ; u64 timeout_tid ; u64 last_tid ; struct rb_root requests ; struct list_head req_lru ; struct list_head req_unsent ; struct list_head req_notarget ; struct list_head req_linger ; int num_requests ; struct delayed_work timeout_work ; struct delayed_work osds_timeout_work ; struct dentry *debugfs_file ; mempool_t *req_mempool ; struct ceph_msgpool msgpool_op ; struct ceph_msgpool msgpool_op_reply ; spinlock_t event_lock ; struct rb_root event_tree ; u64 event_count ; struct workqueue_struct *notify_wq ; }; struct ceph_options { int flags ; struct ceph_fsid fsid ; struct ceph_entity_addr my_addr ; int mount_timeout ; int osd_idle_ttl ; int osd_keepalive_timeout ; struct ceph_entity_addr *mon_addr ; int num_mon ; char *name ; struct ceph_crypto_key *key ; }; struct ceph_mds_client; struct ceph_client { struct ceph_fsid fsid ; bool have_fsid ; void *private ; struct ceph_options *options ; struct mutex mount_mutex ; wait_queue_head_t auth_wq ; int auth_err ; int (*extra_mon_dispatch)(struct ceph_client * , struct ceph_msg * ) ; u32 supported_features ; u32 required_features ; struct ceph_messenger msgr ; struct ceph_mon_client monc ; struct ceph_osd_client osdc ; struct dentry *debugfs_dir ; struct dentry *debugfs_monmap ; struct dentry *debugfs_osdmap ; }; struct ceph_snap_context { atomic_t nref ; u64 seq ; u32 num_snaps ; u64 snaps[] ; }; struct ceph_mount_options { int flags ; int sb_flags ; int wsize ; int rsize ; int rasize ; int congestion_kb ; int caps_wanted_delay_min ; int caps_wanted_delay_max ; int cap_release_safety ; int max_readdir ; int max_readdir_bytes ; char *snapdir_name ; }; struct ceph_fs_client { struct super_block *sb ; struct ceph_mount_options *mount_options ; struct ceph_client *client ; unsigned long mount_state ; int min_caps ; struct ceph_mds_client *mdsc ; mempool_t *wb_pagevec_pool ; struct workqueue_struct *wb_wq ; struct workqueue_struct *pg_inv_wq ; struct workqueue_struct *trunc_wq ; atomic_long_t writeback_count ; struct backing_dev_info backing_dev_info ; struct dentry *debugfs_dentry_lru ; struct dentry *debugfs_caps ; struct dentry *debugfs_congestion_kb ; struct dentry *debugfs_bdi ; struct dentry *debugfs_mdsc ; struct dentry *debugfs_mdsmap ; }; struct ceph_inode_info; struct ceph_mds_session; struct ceph_cap { struct ceph_inode_info *ci ; struct rb_node ci_node ; struct ceph_mds_session *session ; struct list_head session_caps ; int mds ; u64 cap_id ; int issued ; int implemented ; int mds_wanted ; u32 seq ; u32 issue_seq ; u32 mseq ; u32 cap_gen ; unsigned long last_used ; struct list_head caps_item ; }; struct ceph_inode_xattrs_info { struct ceph_buffer *blob ; struct ceph_buffer *prealloc_blob ; struct rb_root index ; bool dirty ; int count ; int names_size ; int vals_size ; u64 version ; u64 index_version ; }; struct ceph_snap_realm; struct ceph_inode_info { struct ceph_vino i_vino ; spinlock_t i_ceph_lock ; u64 i_version ; u32 i_time_warp_seq ; unsigned int i_ceph_flags ; unsigned long i_release_count ; struct ceph_dir_layout i_dir_layout ; struct ceph_file_layout i_layout ; char *i_symlink ; struct timespec i_rctime ; u64 i_rbytes ; u64 i_rfiles ; u64 i_rsubdirs ; u64 i_files ; u64 i_subdirs ; u64 i_max_offset ; struct rb_root i_fragtree ; struct mutex i_fragtree_mutex ; struct ceph_inode_xattrs_info i_xattrs ; struct rb_root i_caps ; struct ceph_cap *i_auth_cap ; unsigned int i_dirty_caps ; unsigned int i_flushing_caps ; struct list_head i_dirty_item ; struct list_head i_flushing_item ; u64 i_cap_flush_seq ; u16 i_cap_flush_last_tid ; u16 i_cap_flush_tid[22U] ; wait_queue_head_t i_cap_wq ; unsigned long i_hold_caps_min ; unsigned long i_hold_caps_max ; struct list_head i_cap_delay_list ; int i_cap_exporting_mds ; unsigned int i_cap_exporting_mseq ; unsigned int i_cap_exporting_issued ; struct ceph_cap_reservation i_cap_migration_resv ; struct list_head i_cap_snaps ; struct ceph_snap_context *i_head_snapc ; unsigned int i_snap_caps ; int i_nr_by_mode[8U] ; u32 i_truncate_seq ; u64 i_truncate_size ; int i_truncate_pending ; u64 i_max_size ; u64 i_reported_size ; u64 i_wanted_max_size ; u64 i_requested_max_size ; int i_pin_ref ; int i_rd_ref ; int i_rdcache_ref ; int i_wr_ref ; int i_wb_ref ; int i_wrbuffer_ref ; int i_wrbuffer_ref_head ; u32 i_shared_gen ; u32 i_rdcache_gen ; u32 i_rdcache_revoking ; struct list_head i_unsafe_writes ; struct list_head i_unsafe_dirops ; spinlock_t i_unsafe_lock ; struct ceph_snap_realm *i_snap_realm ; int i_snap_realm_counter ; struct list_head i_snap_realm_item ; struct list_head i_snap_flush_item ; struct work_struct i_wb_work ; struct work_struct i_pg_inv_work ; struct work_struct i_vmtruncate_work ; struct inode vfs_inode ; }; struct ceph_mds_request; struct ceph_snap_realm { u64 ino ; atomic_t nref ; struct rb_node node ; u64 created ; u64 seq ; u64 parent_ino ; u64 parent_since ; u64 *prior_parent_snaps ; u32 num_prior_parent_snaps ; u64 *snaps ; u32 num_snaps ; struct ceph_snap_realm *parent ; struct list_head children ; struct list_head child_item ; struct list_head empty_item ; struct list_head dirty_item ; struct ceph_snap_context *cached_context ; struct list_head inodes_with_caps ; spinlock_t inodes_with_caps_lock ; }; struct ceph_mds_info { u64 global_id ; struct ceph_entity_addr addr ; s32 state ; int num_export_targets ; bool laggy ; u32 *export_targets ; }; struct ceph_mdsmap { u32 m_epoch ; u32 m_client_epoch ; u32 m_last_failure ; u32 m_root ; u32 m_session_timeout ; u32 m_session_autoclose ; u64 m_max_file_size ; u32 m_max_mds ; struct ceph_mds_info *m_info ; int m_num_data_pg_pools ; u32 *m_data_pg_pools ; u32 m_cas_pg_pool ; }; struct ceph_mds_reply_info_in { struct ceph_mds_reply_inode *in ; struct ceph_dir_layout dir_layout ; u32 symlink_len ; char *symlink ; u32 xattr_len ; char *xattr_data ; }; struct __anonstruct_ldv_29666_208 { struct ceph_mds_reply_dirfrag *dir_dir ; int dir_nr ; char **dir_dname ; u32 *dir_dname_len ; struct ceph_mds_reply_lease **dir_dlease ; struct ceph_mds_reply_info_in *dir_in ; u8 dir_complete ; u8 dir_end ; }; union __anonunion_ldv_29667_207 { struct ceph_filelock *filelock_reply ; struct __anonstruct_ldv_29666_208 ldv_29666 ; }; struct ceph_mds_reply_info_parsed { struct ceph_mds_reply_head *head ; struct ceph_mds_reply_info_in diri ; struct ceph_mds_reply_info_in targeti ; struct ceph_mds_reply_dirfrag *dirfrag ; char *dname ; u32 dname_len ; struct ceph_mds_reply_lease *dlease ; union __anonunion_ldv_29667_207 ldv_29667 ; void *snapblob ; int snapblob_len ; }; struct ceph_mds_session { struct ceph_mds_client *s_mdsc ; int s_mds ; int s_state ; unsigned long s_ttl ; u64 s_seq ; struct mutex s_mutex ; struct ceph_connection s_con ; struct ceph_auth_handshake s_auth ; spinlock_t s_gen_ttl_lock ; u32 s_cap_gen ; unsigned long s_cap_ttl ; spinlock_t s_cap_lock ; struct list_head s_caps ; int s_nr_caps ; int s_trim_caps ; int s_num_cap_releases ; struct list_head s_cap_releases ; struct list_head s_cap_releases_done ; struct ceph_cap *s_cap_iterator ; struct list_head s_cap_flushing ; struct list_head s_cap_snaps_flushing ; unsigned long s_renew_requested ; u64 s_renew_seq ; atomic_t s_ref ; struct list_head s_waiting ; struct list_head s_unsafe ; }; struct ceph_mds_request { u64 r_tid ; struct rb_node r_node ; struct ceph_mds_client *r_mdsc ; int r_op ; struct inode *r_inode ; struct dentry *r_dentry ; struct dentry *r_old_dentry ; struct inode *r_old_dentry_dir ; char *r_path1 ; char *r_path2 ; struct ceph_vino r_ino1 ; struct ceph_vino r_ino2 ; struct inode *r_locked_dir ; struct inode *r_target_inode ; struct mutex r_fill_mutex ; union ceph_mds_request_args r_args ; int r_fmode ; uid_t r_uid ; gid_t r_gid ; int r_direct_mode ; u32 r_direct_hash ; bool r_direct_is_hash ; struct page **r_pages ; int r_num_pages ; int r_data_len ; int r_inode_drop ; int r_inode_unless ; int r_dentry_drop ; int r_dentry_unless ; int r_old_dentry_drop ; int r_old_dentry_unless ; struct inode *r_old_inode ; int r_old_inode_drop ; int r_old_inode_unless ; struct ceph_msg *r_request ; int r_request_release_offset ; struct ceph_msg *r_reply ; struct ceph_mds_reply_info_parsed r_reply_info ; int r_err ; bool r_aborted ; unsigned long r_timeout ; unsigned long r_started ; unsigned long r_request_started ; struct inode *r_unsafe_dir ; struct list_head r_unsafe_dir_item ; struct ceph_mds_session *r_session ; int r_attempts ; int r_num_fwd ; int r_resend_mds ; u32 r_sent_on_mseq ; struct kref r_kref ; struct list_head r_wait ; struct completion r_completion ; struct completion r_safe_completion ; void (*r_callback)(struct ceph_mds_client * , struct ceph_mds_request * ) ; struct list_head r_unsafe_item ; bool r_got_unsafe ; bool r_got_safe ; bool r_got_result ; bool r_did_prepopulate ; u32 r_readdir_offset ; struct ceph_cap_reservation r_caps_reservation ; int r_num_caps ; }; struct ceph_mds_client { struct ceph_fs_client *fsc ; struct mutex mutex ; struct ceph_mdsmap *mdsmap ; struct completion safe_umount_waiters ; wait_queue_head_t session_close_wq ; struct list_head waiting_for_map ; struct ceph_mds_session **sessions ; int max_sessions ; int stopping ; struct rw_semaphore snap_rwsem ; struct rb_root snap_realms ; struct list_head snap_empty ; spinlock_t snap_empty_lock ; u64 last_tid ; struct rb_root request_tree ; struct delayed_work delayed_work ; unsigned long last_renew_caps ; struct list_head cap_delay_list ; spinlock_t cap_delay_lock ; struct list_head snap_flush_list ; spinlock_t snap_flush_lock ; u64 cap_flush_seq ; struct list_head cap_dirty ; struct list_head cap_dirty_migrating ; int num_cap_flushing ; spinlock_t cap_dirty_lock ; wait_queue_head_t cap_flushing_wq ; spinlock_t caps_list_lock ; struct list_head caps_list ; int caps_total_count ; int caps_use_count ; int caps_reserve_count ; int caps_avail_count ; int caps_min_count ; spinlock_t dentry_lru_lock ; struct list_head dentry_lru ; int num_dentry ; }; typedef __kernel_ulong_t __kernel_ino_t; typedef __kernel_ino_t ino_t; enum hrtimer_restart; struct nameidata { struct path path ; struct qstr last ; struct path root ; struct inode *inode ; unsigned int flags ; unsigned int seq ; int last_type ; unsigned int depth ; char *saved_names[9U] ; }; struct ceph_mds_request_head { __le64 oldest_client_tid ; __le32 mdsmap_epoch ; __le32 flags ; __u8 num_retry ; __u8 num_fwd ; __le16 num_releases ; __le32 op ; __le32 caller_uid ; __le32 caller_gid ; __le64 ino ; union ceph_mds_request_args args ; }; struct ceph_inode_frag { struct rb_node node ; u32 frag ; int split_by ; int mds ; int ndist ; int dist[4U] ; }; struct ceph_dentry_info { unsigned long flags ; struct ceph_mds_session *lease_session ; u32 lease_gen ; u32 lease_shared_gen ; u32 lease_seq ; unsigned long lease_renew_after ; unsigned long lease_renew_from ; struct list_head lru ; struct dentry *dentry ; u64 time ; u64 offset ; }; struct fs_struct { int users ; spinlock_t lock ; seqcount_t seq ; int umask ; int in_exec ; struct path root ; struct path pwd ; }; enum hrtimer_restart; struct ceph_file_info { short fmode ; short flags ; u32 frag ; struct ceph_mds_request *last_readdir ; unsigned int offset ; u64 next_offset ; char *last_name ; struct dentry *dentry ; unsigned long dir_release_count ; char *dir_info ; int dir_info_len ; }; enum hrtimer_restart; struct ceph_pg { __le16 preferred ; __le16 ps ; __le32 pool ; }; struct ceph_eversion { __le32 epoch ; __le64 version ; }; struct ceph_osd_request; struct ceph_osd { atomic_t o_ref ; struct ceph_osd_client *o_osdc ; int o_osd ; int o_incarnation ; struct rb_node o_node ; struct ceph_connection o_con ; struct list_head o_requests ; struct list_head o_linger_requests ; struct list_head o_osd_lru ; struct ceph_auth_handshake o_auth ; unsigned long lru_ttl ; int o_marked_for_keepalive ; struct list_head o_keepalive_item ; }; struct ceph_osd_request { u64 r_tid ; struct rb_node r_node ; struct list_head r_req_lru_item ; struct list_head r_osd_item ; struct list_head r_linger_item ; struct list_head r_linger_osd ; struct ceph_osd *r_osd ; struct ceph_pg r_pgid ; int r_pg_osds[16U] ; int r_num_pg_osds ; struct ceph_connection *r_con_filling_msg ; struct ceph_msg *r_request ; struct ceph_msg *r_reply ; int r_result ; int r_flags ; u32 r_sent ; int r_got_reply ; int r_linger ; struct ceph_osd_client *r_osdc ; struct kref r_kref ; bool r_mempool ; struct completion r_completion ; struct completion r_safe_completion ; void (*r_callback)(struct ceph_osd_request * , struct ceph_msg * ) ; void (*r_safe_callback)(struct ceph_osd_request * , struct ceph_msg * ) ; struct ceph_eversion r_reassert_version ; struct list_head r_unsafe_item ; struct inode *r_inode ; void *r_priv ; char r_oid[100U] ; int r_oid_len ; unsigned long r_stamp ; struct ceph_file_layout r_file_layout ; struct ceph_snap_context *r_snapc ; unsigned int r_num_pages ; unsigned int r_page_alignment ; struct page **r_pages ; int r_pages_from_pool ; int r_own_pages ; struct bio *r_bio ; struct ceph_pagelist *r_trail ; }; enum hrtimer_restart; struct ceph_pagelist { struct list_head head ; void *mapped_tail ; size_t length ; size_t room ; struct list_head free_list ; size_t num_pages_free ; }; struct exec_domain; struct map_segment; struct exec_domain { char const *name ; void (*handler)(int , struct pt_regs * ) ; unsigned char pers_low ; unsigned char pers_high ; unsigned long *signal_map ; unsigned long *signal_invmap ; struct map_segment *err_map ; struct map_segment *socktype_map ; struct map_segment *sockopt_map ; struct map_segment *af_map ; struct module *module ; struct exec_domain *next ; }; struct __anonstruct_mm_segment_t_27 { unsigned long seg ; }; typedef struct __anonstruct_mm_segment_t_27 mm_segment_t; struct compat_timespec; struct __anonstruct_futex_32 { u32 *uaddr ; u32 val ; u32 flags ; u32 bitset ; u64 time ; u32 *uaddr2 ; }; struct __anonstruct_nanosleep_33 { clockid_t clockid ; struct timespec *rmtp ; struct compat_timespec *compat_rmtp ; u64 expires ; }; struct pollfd; struct __anonstruct_poll_34 { struct pollfd *ufds ; int nfds ; int has_timeout ; unsigned long tv_sec ; unsigned long tv_nsec ; }; union __anonunion_ldv_6207_31 { struct __anonstruct_futex_32 futex ; struct __anonstruct_nanosleep_33 nanosleep ; struct __anonstruct_poll_34 poll ; }; struct restart_block { long (*fn)(struct restart_block * ) ; union __anonunion_ldv_6207_31 ldv_6207 ; }; struct thread_info { struct task_struct *task ; struct exec_domain *exec_domain ; __u32 flags ; __u32 status ; __u32 cpu ; int preempt_count ; mm_segment_t addr_limit ; struct restart_block restart_block ; void *sysenter_return ; unsigned char sig_on_uaccess_error : 1 ; unsigned char uaccess_err : 1 ; }; enum hrtimer_restart; struct __wait_queue; typedef struct __wait_queue wait_queue_t; struct __wait_queue { unsigned int flags ; void *private ; int (*func)(wait_queue_t * , unsigned int , int , void * ) ; struct list_head task_list ; }; struct pagevec { unsigned long nr ; unsigned long cold ; struct page *pages[14U] ; }; struct ceph_object_layout { struct ceph_pg ol_pgid ; __le32 ol_stripe_unit ; }; struct __anonstruct_extent_178 { __le64 offset ; __le64 length ; __le64 truncate_size ; __le32 truncate_seq ; }; struct __anonstruct_xattr_179 { __le32 name_len ; __le32 value_len ; __u8 cmp_op ; __u8 cmp_mode ; }; struct __anonstruct_cls_180 { __u8 class_len ; __u8 method_len ; __u8 argc ; __le32 indata_len ; }; struct __anonstruct_pgls_181 { __le64 cookie ; __le64 count ; }; struct __anonstruct_snap_182 { __le64 snapid ; }; struct __anonstruct_watch_183 { __le64 cookie ; __le64 ver ; __u8 flag ; }; union __anonunion_ldv_26044_177 { struct __anonstruct_extent_178 extent ; struct __anonstruct_xattr_179 xattr ; struct __anonstruct_cls_180 cls ; struct __anonstruct_pgls_181 pgls ; struct __anonstruct_snap_182 snap ; struct __anonstruct_watch_183 watch ; }; struct ceph_osd_op { __le16 op ; __le32 flags ; union __anonunion_ldv_26044_177 ldv_26044 ; __le32 payload_len ; }; struct ceph_osd_request_head { __le32 client_inc ; struct ceph_object_layout layout ; __le32 osdmap_epoch ; __le32 flags ; struct ceph_timespec mtime ; struct ceph_eversion reassert_version ; __le32 object_len ; __le64 snapid ; __le64 snap_seq ; __le32 num_snaps ; __le16 num_ops ; struct ceph_osd_op ops[] ; }; struct ceph_osd_reply_head { __le32 client_inc ; __le32 flags ; struct ceph_object_layout layout ; __le32 osdmap_epoch ; struct ceph_eversion reassert_version ; __le32 result ; __le32 object_len ; __le32 num_ops ; struct ceph_osd_op ops[0U] ; }; struct ceph_cap_snap { atomic_t nref ; struct ceph_inode_info *ci ; struct list_head ci_item ; struct list_head flushing_item ; u64 follows ; u64 flush_tid ; int issued ; int dirty ; struct ceph_snap_context *context ; umode_t mode ; uid_t uid ; gid_t gid ; struct ceph_buffer *xattr_blob ; u64 xattr_version ; u64 size ; struct timespec mtime ; struct timespec atime ; struct timespec ctime ; u64 time_warp_seq ; int writing ; int dirty_pages ; }; enum hrtimer_restart; struct ceph_ioctl_layout { __u64 stripe_unit ; __u64 stripe_count ; __u64 object_size ; __u64 data_pool ; __s64 preferred_osd ; }; struct ceph_ioctl_dataloc { __u64 file_offset ; __u64 object_offset ; __u64 object_no ; __u64 object_size ; char object_name[64U] ; __u64 block_offset ; __u64 block_size ; __s64 osd ; struct __kernel_sockaddr_storage osd_addr ; }; enum hrtimer_restart; struct ceph_nfs_fh { u64 ino ; }; struct ceph_nfs_confh { u64 ino ; u64 parent_ino ; u32 parent_name_hash ; }; enum hrtimer_restart; struct ceph_mds_request_release { __le64 ino ; __le64 cap_id ; __le32 caps ; __le32 wanted ; __le32 seq ; __le32 issue_seq ; __le32 mseq ; __le32 dname_seq ; __le32 dname_len ; }; struct ceph_mds_caps { __le32 op ; __le64 ino ; __le64 realm ; __le64 cap_id ; __le32 seq ; __le32 issue_seq ; __le32 caps ; __le32 wanted ; __le32 dirty ; __le32 migrate_seq ; __le64 snap_follows ; __le32 snap_trace_len ; __le32 uid ; __le32 gid ; __le32 mode ; __le32 nlink ; __le32 xattr_len ; __le64 xattr_version ; __le64 size ; __le64 max_size ; __le64 truncate_size ; __le32 truncate_seq ; struct ceph_timespec mtime ; struct ceph_timespec atime ; struct ceph_timespec ctime ; struct ceph_file_layout layout ; __le32 time_warp_seq ; }; struct ceph_mds_cap_release { __le32 num ; }; struct ceph_mds_cap_item { __le64 ino ; __le64 cap_id ; __le32 migrate_seq ; __le32 seq ; }; typedef int ldv_func_ret_type___9; enum hrtimer_restart; struct ceph_mds_snap_head { __le32 op ; __le64 split ; __le32 num_split_inos ; __le32 num_split_realms ; __le32 trace_len ; }; struct ceph_mds_snap_realm { __le64 ino ; __le64 created ; __le64 parent ; __le64 parent_since ; __le64 seq ; __le32 num_snaps ; __le32 num_prior_parent_snaps ; }; enum hrtimer_restart; struct ceph_inode_xattr { struct rb_node node ; char const *name ; int name_len ; char const *val ; int val_len ; int dirty ; int should_free_name ; int should_free_val ; }; struct xattr_handler { char const *prefix ; int flags ; size_t (*list)(struct dentry * , char * , size_t , char const * , size_t , int ) ; int (*get)(struct dentry * , char const * , void * , size_t , int ) ; int (*set)(struct dentry * , char const * , void const * , size_t , int , int ) ; }; struct ceph_vxattr { char *name ; size_t name_size ; size_t (*getxattr_cb)(struct ceph_inode_info * , char * , size_t ) ; bool readonly ; }; struct __anonstruct_seqlock_t_35 { unsigned int sequence ; spinlock_t lock ; }; typedef struct __anonstruct_seqlock_t_35 seqlock_t; enum hrtimer_restart; struct ceph_mds_session_head { __le32 op ; __le64 seq ; struct ceph_timespec stamp ; __le32 max_caps ; __le32 max_leases ; }; struct ceph_mds_lease { __u8 action ; __le16 mask ; __le64 ino ; __le64 first ; __le64 last ; __le32 seq ; __le32 duration_ms ; }; struct ceph_mds_cap_reconnect { __le64 cap_id ; __le32 wanted ; __le32 issued ; __le64 snaprealm ; __le64 pathbase ; __le32 flock_len ; }; struct ceph_mds_cap_reconnect_v1 { __le64 cap_id ; __le32 wanted ; __le32 issued ; __le64 size ; struct ceph_timespec mtime ; struct ceph_timespec atime ; __le64 snaprealm ; __le64 pathbase ; }; struct ceph_mds_snaprealm_reconnect { __le64 ino ; __le64 seq ; __le64 parent ; }; struct ceph_pagelist_cursor { struct ceph_pagelist *pl ; struct list_head *page_lru ; size_t room ; }; struct ceph_reconnect_state { struct ceph_pagelist *pagelist ; bool flock ; }; union __anonunion_rec_203 { struct ceph_mds_cap_reconnect v2 ; struct ceph_mds_cap_reconnect_v1 v1 ; }; typedef __u16 __be16; enum hrtimer_restart; struct attribute_group { char const *name ; umode_t (*is_visible)(struct kobject * , struct attribute * , int ) ; struct attribute **attrs ; }; struct bin_attribute { struct attribute attr ; size_t size ; void *private ; ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * , loff_t , size_t ) ; ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * , loff_t , size_t ) ; int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ; }; struct klist_node; struct klist_node { void *n_klist ; struct list_head n_node ; struct kref n_ref ; }; enum hrtimer_restart; struct pm_message { int event ; }; typedef struct pm_message pm_message_t; struct dev_pm_ops { int (*prepare)(struct device * ) ; void (*complete)(struct device * ) ; int (*suspend)(struct device * ) ; int (*resume)(struct device * ) ; int (*freeze)(struct device * ) ; int (*thaw)(struct device * ) ; int (*poweroff)(struct device * ) ; int (*restore)(struct device * ) ; int (*suspend_late)(struct device * ) ; int (*resume_early)(struct device * ) ; int (*freeze_late)(struct device * ) ; int (*thaw_early)(struct device * ) ; int (*poweroff_late)(struct device * ) ; int (*restore_early)(struct device * ) ; int (*suspend_noirq)(struct device * ) ; int (*resume_noirq)(struct device * ) ; int (*freeze_noirq)(struct device * ) ; int (*thaw_noirq)(struct device * ) ; int (*poweroff_noirq)(struct device * ) ; int (*restore_noirq)(struct device * ) ; int (*runtime_suspend)(struct device * ) ; int (*runtime_resume)(struct device * ) ; int (*runtime_idle)(struct device * ) ; }; enum rpm_status { RPM_ACTIVE = 0, RPM_RESUMING = 1, RPM_SUSPENDED = 2, RPM_SUSPENDING = 3 } ; enum rpm_request { RPM_REQ_NONE = 0, RPM_REQ_IDLE = 1, RPM_REQ_SUSPEND = 2, RPM_REQ_AUTOSUSPEND = 3, RPM_REQ_RESUME = 4 } ; struct wakeup_source; struct pm_subsys_data { spinlock_t lock ; unsigned int refcount ; }; struct dev_pm_qos; struct dev_pm_info { pm_message_t power_state ; unsigned char can_wakeup : 1 ; unsigned char async_suspend : 1 ; bool is_prepared ; bool is_suspended ; bool ignore_children ; bool early_init ; spinlock_t lock ; struct list_head entry ; struct completion completion ; struct wakeup_source *wakeup ; bool wakeup_path ; bool syscore ; struct timer_list suspend_timer ; unsigned long timer_expires ; struct work_struct work ; wait_queue_head_t wait_queue ; atomic_t usage_count ; atomic_t child_count ; unsigned char disable_depth : 3 ; unsigned char idle_notification : 1 ; unsigned char request_pending : 1 ; unsigned char deferred_resume : 1 ; unsigned char run_wake : 1 ; unsigned char runtime_auto : 1 ; unsigned char no_callbacks : 1 ; unsigned char irq_safe : 1 ; unsigned char use_autosuspend : 1 ; unsigned char timer_autosuspends : 1 ; enum rpm_request request ; enum rpm_status runtime_status ; int runtime_error ; int autosuspend_delay ; unsigned long last_busy ; unsigned long active_jiffies ; unsigned long suspended_jiffies ; unsigned long accounting_timestamp ; struct pm_subsys_data *subsys_data ; struct dev_pm_qos *qos ; }; struct dev_pm_domain { struct dev_pm_ops ops ; }; struct dma_map_ops; struct dev_archdata { struct dma_map_ops *dma_ops ; void *iommu ; }; struct device_private; struct device_driver; struct driver_private; struct class; struct subsys_private; struct bus_type; struct device_node; struct iommu_ops; struct iommu_group; struct bus_attribute { struct attribute attr ; ssize_t (*show)(struct bus_type * , char * ) ; ssize_t (*store)(struct bus_type * , char const * , size_t ) ; }; struct device_attribute; struct driver_attribute; struct bus_type { char const *name ; char const *dev_name ; struct device *dev_root ; struct bus_attribute *bus_attrs ; struct device_attribute *dev_attrs ; struct driver_attribute *drv_attrs ; int (*match)(struct device * , struct device_driver * ) ; int (*uevent)(struct device * , struct kobj_uevent_env * ) ; int (*probe)(struct device * ) ; int (*remove)(struct device * ) ; void (*shutdown)(struct device * ) ; int (*suspend)(struct device * , pm_message_t ) ; int (*resume)(struct device * ) ; struct dev_pm_ops const *pm ; struct iommu_ops *iommu_ops ; struct subsys_private *p ; }; struct device_type; struct of_device_id; struct acpi_device_id; struct device_driver { char const *name ; struct bus_type *bus ; struct module *owner ; char const *mod_name ; bool suppress_bind_attrs ; struct of_device_id const *of_match_table ; struct acpi_device_id const *acpi_match_table ; int (*probe)(struct device * ) ; int (*remove)(struct device * ) ; void (*shutdown)(struct device * ) ; int (*suspend)(struct device * , pm_message_t ) ; int (*resume)(struct device * ) ; struct attribute_group const **groups ; struct dev_pm_ops const *pm ; struct driver_private *p ; }; struct driver_attribute { struct attribute attr ; ssize_t (*show)(struct device_driver * , char * ) ; ssize_t (*store)(struct device_driver * , char const * , size_t ) ; }; struct class_attribute; struct class { char const *name ; struct module *owner ; struct class_attribute *class_attrs ; struct device_attribute *dev_attrs ; struct bin_attribute *dev_bin_attrs ; struct kobject *dev_kobj ; int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ; char *(*devnode)(struct device * , umode_t * ) ; void (*class_release)(struct class * ) ; void (*dev_release)(struct device * ) ; int (*suspend)(struct device * , pm_message_t ) ; int (*resume)(struct device * ) ; struct kobj_ns_type_operations const *ns_type ; void const *(*namespace)(struct device * ) ; struct dev_pm_ops const *pm ; struct subsys_private *p ; }; struct class_attribute { struct attribute attr ; ssize_t (*show)(struct class * , struct class_attribute * , char * ) ; ssize_t (*store)(struct class * , struct class_attribute * , char const * , size_t ) ; void const *(*namespace)(struct class * , struct class_attribute const * ) ; }; struct device_type { char const *name ; struct attribute_group const **groups ; int (*uevent)(struct device * , struct kobj_uevent_env * ) ; char *(*devnode)(struct device * , umode_t * ) ; void (*release)(struct device * ) ; struct dev_pm_ops const *pm ; }; struct device_attribute { struct attribute attr ; ssize_t (*show)(struct device * , struct device_attribute * , char * ) ; ssize_t (*store)(struct device * , struct device_attribute * , char const * , size_t ) ; }; struct device_dma_parameters { unsigned int max_segment_size ; unsigned long segment_boundary_mask ; }; struct acpi_dev_node { void *handle ; }; struct dma_coherent_mem; struct device { struct device *parent ; struct device_private *p ; struct kobject kobj ; char const *init_name ; struct device_type const *type ; struct mutex mutex ; struct bus_type *bus ; struct device_driver *driver ; void *platform_data ; struct dev_pm_info power ; struct dev_pm_domain *pm_domain ; int numa_node ; u64 *dma_mask ; u64 coherent_dma_mask ; struct device_dma_parameters *dma_parms ; struct list_head dma_pools ; struct dma_coherent_mem *dma_mem ; struct dev_archdata archdata ; struct device_node *of_node ; struct acpi_dev_node acpi_node ; dev_t devt ; u32 id ; spinlock_t devres_lock ; struct list_head devres_head ; struct klist_node knode_class ; struct class *class ; struct attribute_group const **groups ; void (*release)(struct device * ) ; struct iommu_group *iommu_group ; }; struct wakeup_source { char const *name ; struct list_head entry ; spinlock_t lock ; struct timer_list timer ; unsigned long timer_expires ; ktime_t total_time ; ktime_t max_time ; ktime_t last_time ; ktime_t start_prevent_time ; ktime_t prevent_sleep_time ; unsigned long event_count ; unsigned long active_count ; unsigned long relax_count ; unsigned long expire_count ; unsigned long wakeup_count ; bool active ; bool autosleep_enabled ; }; typedef int ldv_func_ret_type___2; long ldv__builtin_expect(long exp , long c ) ; extern int printk(char const * , ...) ; extern int __dynamic_pr_debug(struct _ddebug * , char const * , ...) ; extern unsigned long int_sqrt(unsigned long ) ; extern int memcmp(void const * , void const * , size_t ) ; extern size_t strlen(char const * ) ; extern int strcmp(char const * , char const * ) ; extern char *strchr(char const * , int ) ; extern char *kstrdup(char const * , gfp_t ) ; extern char *kstrndup(char const * , size_t , gfp_t ) ; extern void warn_slowpath_null(char const * , int const ) ; __inline static void *ERR_PTR(long error ) { { return ((void *)error); } } __inline static long PTR_ERR(void const *ptr ) { { return ((long )ptr); } } __inline static long IS_ERR(void const *ptr ) { long tmp ; { tmp = ldv__builtin_expect((unsigned long )ptr > 0xfffffffffffff000UL, 0L); return (tmp); } } __inline static void *ERR_CAST(void const *ptr ) { { return ((void *)ptr); } } extern void __xadd_wrong_size(void) ; __inline static int atomic_sub_and_test(int i , atomic_t *v ) { unsigned char c ; { __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; subl %2,%0; sete %1": "+m" (v->counter), "=qm" (c): "ir" (i): "memory"); return ((int )c); } } __inline static void atomic64_set(atomic64_t *v , long i ) { { v->counter = i; return; } } __inline static long atomic64_add_return(long i , atomic64_t *v ) { long __ret ; { __ret = i; switch (8UL) { case 1UL: __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; xaddb %b0, %1\n": "+q" (__ret), "+m" (v->counter): : "memory", "cc"); goto ldv_5576; case 2UL: __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; xaddw %w0, %1\n": "+r" (__ret), "+m" (v->counter): : "memory", "cc"); goto ldv_5576; case 4UL: __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; xaddl %0, %1\n": "+r" (__ret), "+m" (v->counter): : "memory", "cc"); goto ldv_5576; case 8UL: __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; xaddq %q0, %1\n": "+r" (__ret), "+m" (v->counter): : "memory", "cc"); goto ldv_5576; default: __xadd_wrong_size(); } ldv_5576: ; return (__ret + i); } } __inline static void atomic_long_set(atomic_long_t *l , long i ) { atomic64_t *v ; { v = l; atomic64_set(v, i); return; } } __inline static long atomic_long_inc_return(atomic_long_t *l ) { atomic64_t *v ; long tmp ; { v = l; tmp = atomic64_add_return(1L, v); return (tmp); } } extern void mutex_unlock(struct mutex * ) ; void ldv_mutex_unlock_2(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_4(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_6(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_7(struct mutex *ldv_func_arg1 ) ; extern void mutex_lock(struct mutex * ) ; void ldv_mutex_lock_1(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_3(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_5(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_cred_guard_mutex(struct mutex *lock ) ; void ldv_mutex_unlock_cred_guard_mutex(struct mutex *lock ) ; void ldv_mutex_lock_lock(struct mutex *lock ) ; void ldv_mutex_unlock_lock(struct mutex *lock ) ; void ldv_mutex_lock_mount_mutex(struct mutex *lock ) ; void ldv_mutex_unlock_mount_mutex(struct mutex *lock ) ; extern char const *ceph_file_part(char const * , int ) ; extern void _raw_spin_lock(raw_spinlock_t * ) ; extern void _raw_spin_unlock(raw_spinlock_t * ) ; __inline static void spin_lock(spinlock_t *lock ) { { _raw_spin_lock(& lock->ldv_5961.rlock); return; } } __inline static void spin_unlock(spinlock_t *lock ) { { _raw_spin_unlock(& lock->ldv_5961.rlock); return; } } extern unsigned long volatile jiffies ; extern struct workqueue_struct *__alloc_workqueue_key(char const * , unsigned int , int , struct lock_class_key * , char const * , ...) ; extern void destroy_workqueue(struct workqueue_struct * ) ; extern void rcu_barrier(void) ; extern struct dentry *d_obtain_alias(struct inode * ) ; extern struct dentry *d_make_root(struct inode * ) ; __inline static struct dentry *dget_dlock(struct dentry *dentry ) { { if ((unsigned long )dentry != (unsigned long )((struct dentry *)0)) { dentry->d_count = dentry->d_count + 1U; } else { } return (dentry); } } __inline static struct dentry *dget(struct dentry *dentry ) { { if ((unsigned long )dentry != (unsigned long )((struct dentry *)0)) { spin_lock(& dentry->d_lock); dget_dlock(dentry); spin_unlock(& dentry->d_lock); } else { } return (dentry); } } extern void dput(struct dentry * ) ; extern void kill_anon_super(struct super_block * ) ; extern void deactivate_locked_super(struct super_block * ) ; extern int set_anon_super(struct super_block * , void * ) ; extern struct super_block *sget(struct file_system_type * , int (*)(struct super_block * , void * ) , int (*)(struct super_block * , void * ) , int , void * ) ; extern int register_filesystem(struct file_system_type * ) ; extern int unregister_filesystem(struct file_system_type * ) ; extern void inode_init_once(struct inode * ) ; extern int bdi_init(struct backing_dev_info * ) ; extern void bdi_destroy(struct backing_dev_info * ) ; extern int bdi_register(struct backing_dev_info * , struct device * , char const * , ...) ; extern void bdi_unregister(struct backing_dev_info * ) ; extern struct backing_dev_info default_backing_dev_info ; __inline static int kref_sub(struct kref *kref , unsigned int count , void (*release)(struct kref * ) ) { int __ret_warn_on ; long tmp ; int tmp___0 ; { __ret_warn_on = (unsigned long )release == (unsigned long )((void (*)(struct kref * ))0); tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("include/linux/kref.h", 67); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp___0 = atomic_sub_and_test((int )count, & kref->refcount); if (tmp___0 != 0) { (*release)(kref); return (1); } else { } return (0); } } __inline static int kref_put(struct kref *kref , void (*release)(struct kref * ) ) { int tmp ; { tmp = kref_sub(kref, 1U, release); return (tmp); } } extern struct module __this_module ; extern int match_token(char * , struct match_token const * , substring_t * ) ; extern int match_int(substring_t * , int * ) ; extern int seq_puts(struct seq_file * , char const * ) ; extern int seq_printf(struct seq_file * , char const * , ...) ; extern struct kmem_cache *kmem_cache_create(char const * , size_t , size_t , unsigned long , void (*)(void * ) ) ; extern void kmem_cache_destroy(struct kmem_cache * ) ; extern void kfree(void const * ) ; extern int __VERIFIER_nondet_int(void); extern void abort(void); void assume_abort_if_not(int cond) { if(!cond) {abort();} } extern void *malloc(size_t size); long ldv_is_err(const void *ptr) { return ((unsigned long)ptr > ((unsigned long)-4095)); } void *ldv_malloc(size_t size) { if (__VERIFIER_nondet_int()) { void *res = malloc(size); assume_abort_if_not(!ldv_is_err(res)); return res; } else { return ((void *)0); } } void *__kmalloc(size_t size, gfp_t t) { return ldv_malloc(size); } void *ldv_malloc(size_t size ) ; __inline static void *kmalloc(size_t size , gfp_t flags ) { void *tmp___2 ; { tmp___2 = __kmalloc(size, flags); return (tmp___2); } } void *ldv_zalloc(size_t size ) ; __inline static void *kzalloc(size_t size , gfp_t flags ) { void *tmp ; { tmp = kmalloc(size, flags | 32768U); return (tmp); } } extern mempool_t *mempool_create(int , mempool_alloc_t * , mempool_free_t * , void * ) ; extern void mempool_destroy(mempool_t * ) ; extern void *mempool_kmalloc(gfp_t , void * ) ; extern void mempool_kfree(void * , void * ) ; __inline static mempool_t *mempool_create_kmalloc_pool(int min_nr , size_t size ) { mempool_t *tmp ; { tmp = mempool_create(min_nr, & mempool_kmalloc, & mempool_kfree, (void *)size); return (tmp); } } extern unsigned long totalram_pages ; __inline static int ceph_fsid_compare(struct ceph_fsid const *a , struct ceph_fsid const *b ) { int tmp ; { tmp = memcmp((void const *)a, (void const *)b, 16UL); return (tmp); } } extern int ceph_monc_do_statfs(struct ceph_mon_client * , struct ceph_statfs * ) ; extern void ceph_osdc_sync(struct ceph_osd_client * ) ; struct kmem_cache *ceph_inode_cachep ; struct kmem_cache *ceph_cap_cachep ; struct kmem_cache *ceph_dentry_cachep ; struct kmem_cache *ceph_file_cachep ; extern struct ceph_options *ceph_parse_options(char * , char const * , char const * , int (*)(char * , void * ) , void * ) ; extern void ceph_destroy_options(struct ceph_options * ) ; extern int ceph_compare_options(struct ceph_options * , struct ceph_client * ) ; extern struct ceph_client *ceph_create_client(struct ceph_options * , void * , unsigned int , unsigned int ) ; extern void ceph_destroy_client(struct ceph_client * ) ; extern int __ceph_open_session(struct ceph_client * , unsigned long ) ; __inline static struct ceph_inode_info *ceph_inode(struct inode *inode ) { struct inode const *__mptr ; { __mptr = (struct inode const *)inode; return ((struct ceph_inode_info *)__mptr + 0xfffffffffffffb20UL); } } __inline static struct ceph_fs_client *ceph_inode_to_client(struct inode *inode ) { { return ((struct ceph_fs_client *)(inode->i_sb)->s_fs_info); } } __inline static struct ceph_fs_client *ceph_sb_to_client(struct super_block *sb ) { { return ((struct ceph_fs_client *)sb->s_fs_info); } } __inline static u64 ceph_ino(struct inode *inode ) { struct ceph_inode_info *tmp ; { tmp = ceph_inode(inode); return (tmp->i_vino.ino); } } __inline static int default_congestion_kb(void) { int congestion_kb ; unsigned long tmp ; { tmp = int_sqrt(totalram_pages); congestion_kb = (int )(tmp * 16UL << 2); if (congestion_kb > 262144) { congestion_kb = 262144; } else { } return (congestion_kb); } } struct inode *ceph_alloc_inode(struct super_block *sb ) ; void ceph_destroy_inode(struct inode *inode ) ; void ceph_xattr_init(void) ; void ceph_xattr_exit(void) ; int ceph_write_inode(struct inode *inode , struct writeback_control *wbc ) ; void ceph_flush_dirty_caps(struct ceph_mds_client *mdsc ) ; int ceph_init_dentry(struct dentry *dentry ) ; struct export_operations const ceph_export_ops ; int ceph_fs_debugfs_init(struct ceph_fs_client *fsc ) ; void ceph_fs_debugfs_cleanup(struct ceph_fs_client *fsc ) ; int ceph_mdsc_init(struct ceph_fs_client *fsc ) ; void ceph_mdsc_close_sessions(struct ceph_mds_client *mdsc ) ; void ceph_mdsc_destroy(struct ceph_fs_client *fsc ) ; void ceph_mdsc_sync(struct ceph_mds_client *mdsc ) ; struct ceph_mds_request *ceph_mdsc_create_request(struct ceph_mds_client *mdsc , int op , int mode ) ; int ceph_mdsc_do_request(struct ceph_mds_client *mdsc , struct inode *dir , struct ceph_mds_request *req ) ; void ceph_mdsc_release_request(struct kref *kref ) ; __inline static void ceph_mdsc_put_request(struct ceph_mds_request *req ) { { kref_put(& req->r_kref, & ceph_mdsc_release_request); return; } } void ceph_mdsc_pre_umount(struct ceph_mds_client *mdsc ) ; void ceph_mdsc_handle_map(struct ceph_mds_client *mdsc , struct ceph_msg *msg ) ; static void ceph_put_super(struct super_block *s ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { tmp = ceph_sb_to_client(s); fsc = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_put_super"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : put_super\n"; descriptor.lineno = 112U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : put_super\n", 3, (char *)" ", tmp___0, 112); } else { } ceph_mdsc_close_sessions(fsc->mdsc); if ((unsigned long )s->s_bdi == (unsigned long )(& fsc->backing_dev_info)) { bdi_unregister(& fsc->backing_dev_info); s->s_bdi = 0; } else { } return; } } static int ceph_statfs(struct dentry *dentry , struct kstatfs *buf ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_monmap *monmap ; struct ceph_statfs st ; u64 fsid ; int err ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { tmp = ceph_inode_to_client(dentry->d_inode); fsc = tmp; monmap = (fsc->client)->monc.monmap; descriptor.modname = "ceph"; descriptor.function = "ceph_statfs"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : statfs\n"; descriptor.lineno = 135U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : statfs\n", 3, (char *)" ", tmp___0, 135); } else { } err = ceph_monc_do_statfs(& (fsc->client)->monc, & st); if (err < 0) { return (err); } else { } buf->f_type = 12805120L; buf->f_bsize = 1048576L; buf->f_blocks = st.kb >> 10; buf->f_bfree = st.kb_avail >> 10; buf->f_bavail = st.kb_avail >> 10; buf->f_files = st.num_objects; buf->f_ffree = 0xffffffffffffffffULL; buf->f_namelen = 255L; buf->f_frsize = 4096L; fsid = *((u64 *)(& monmap->fsid)) ^ *((u64 *)(& monmap->fsid) + 1UL); buf->f_fsid.val[0] = (int )fsid; buf->f_fsid.val[1] = (int )(fsid >> 32); return (0); } } static int ceph_sync_fs(struct super_block *sb , int wait ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; struct _ddebug descriptor___1 ; char const *tmp___4 ; long tmp___5 ; struct _ddebug descriptor___2 ; char const *tmp___6 ; long tmp___7 ; { tmp = ceph_sb_to_client(sb); fsc = tmp; if (wait == 0) { descriptor.modname = "ceph"; descriptor.function = "ceph_sync_fs"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : sync_fs (non-blocking)\n"; descriptor.lineno = 171U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : sync_fs (non-blocking)\n", 3, (char *)" ", tmp___0, 171); } else { } ceph_flush_dirty_caps(fsc->mdsc); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_sync_fs"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : sync_fs (non-blocking) done\n"; descriptor___0.lineno = 173U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : sync_fs (non-blocking) done\n", 3, (char *)" ", tmp___2, 173); } else { } return (0); } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_sync_fs"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : sync_fs (blocking)\n"; descriptor___1.lineno = 177U; descriptor___1.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : sync_fs (blocking)\n", 3, (char *)" ", tmp___4, 177); } else { } ceph_osdc_sync(& (fsc->client)->osdc); ceph_mdsc_sync(fsc->mdsc); descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_sync_fs"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : sync_fs (blocking) done\n"; descriptor___2.lineno = 180U; descriptor___2.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : sync_fs (blocking) done\n", 3, (char *)" ", tmp___6, 180); } else { } return (0); } } static struct match_token fsopt_tokens[21U] = { {0, "wsize=%d"}, {1, "rsize=%d"}, {2, "rasize=%d"}, {3, "caps_wanted_delay_min=%d"}, {4, "caps_wanted_delay_max=%d"}, {5, "cap_release_safety=%d"}, {6, "readdir_max_entries=%d"}, {7, "readdir_max_bytes=%d"}, {8, "write_congestion_kb=%d"}, {10, "snapdirname=%s"}, {12, "dirstat"}, {13, "nodirstat"}, {14, "rbytes"}, {15, "norbytes"}, {16, "asyncreaddir"}, {17, "noasyncreaddir"}, {18, "dcache"}, {19, "nodcache"}, {20, "ino32"}, {21, "noino32"}, {-1, 0}}; static int parse_fsopt_token(char *c , void *private ) { struct ceph_mount_options *fsopt ; substring_t argstr[3U] ; int token ; int intval ; int ret ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___1 ; char const *tmp___3 ; long tmp___4 ; long tmp___5 ; { fsopt = (struct ceph_mount_options *)private; token = match_token(c, (struct match_token const *)(& fsopt_tokens), (substring_t *)(& argstr)); if (token < 0) { return (-22); } else { } if (token <= 8) { ret = match_int((substring_t *)(& argstr), & intval); if (ret < 0) { printk("\vceph: bad mount option arg (not int) at \'%s\'\n", c); return (ret); } else { } descriptor.modname = "ceph"; descriptor.function = "parse_fsopt_token"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : got int token %d val %d\n"; descriptor.lineno = 257U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : got int token %d val %d\n", 3, (char *)" ", tmp, 257, token, intval); } else { } } else if (token > 9 && token <= 10) { descriptor___0.modname = "ceph"; descriptor___0.function = "parse_fsopt_token"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : got string token %d val %s\n"; descriptor___0.lineno = 260U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : got string token %d val %s\n", 3, (char *)" ", tmp___1, 260, token, argstr[0].from); } else { } } else { descriptor___1.modname = "ceph"; descriptor___1.function = "parse_fsopt_token"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : got token %d\n"; descriptor___1.lineno = 262U; descriptor___1.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : got token %d\n", 3, (char *)" ", tmp___3, 262, token); } else { } } switch (token) { case 10: kfree((void const *)fsopt->snapdir_name); fsopt->snapdir_name = kstrndup((char const *)argstr[0].from, (size_t )((long )argstr[0].to - (long )argstr[0].from), 208U); if ((unsigned long )fsopt->snapdir_name == (unsigned long )((char *)0)) { return (-12); } else { } goto ldv_30063; case 0: fsopt->wsize = intval; goto ldv_30063; case 1: fsopt->rsize = intval; goto ldv_30063; case 2: fsopt->rasize = intval; goto ldv_30063; case 3: fsopt->caps_wanted_delay_min = intval; goto ldv_30063; case 4: fsopt->caps_wanted_delay_max = intval; goto ldv_30063; case 6: fsopt->max_readdir = intval; goto ldv_30063; case 7: fsopt->max_readdir_bytes = intval; goto ldv_30063; case 8: fsopt->congestion_kb = intval; goto ldv_30063; case 12: fsopt->flags = fsopt->flags | 16; goto ldv_30063; case 13: fsopt->flags = fsopt->flags & -17; goto ldv_30063; case 14: fsopt->flags = fsopt->flags | 32; goto ldv_30063; case 15: fsopt->flags = fsopt->flags & -33; goto ldv_30063; case 16: fsopt->flags = fsopt->flags & -129; goto ldv_30063; case 17: fsopt->flags = fsopt->flags | 128; goto ldv_30063; case 18: fsopt->flags = fsopt->flags | 512; goto ldv_30063; case 19: fsopt->flags = fsopt->flags & -513; goto ldv_30063; case 20: fsopt->flags = fsopt->flags | 256; goto ldv_30063; case 21: fsopt->flags = fsopt->flags & -257; goto ldv_30063; default: tmp___5 = ldv__builtin_expect(token != 0, 0L); if (tmp___5 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"), "i" (331), "i" (12UL)); ldv_30083: ; goto ldv_30083; } else { } } ldv_30063: ; return (0); } } static void destroy_mount_options(struct ceph_mount_options *args ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { descriptor.modname = "ceph"; descriptor.function = "destroy_mount_options"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : destroy_mount_options %p\n"; descriptor.lineno = 338U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : destroy_mount_options %p\n", 3, (char *)" ", tmp, 338, args); } else { } kfree((void const *)args->snapdir_name); kfree((void const *)args); return; } } static int strcmp_null(char const *s1 , char const *s2 ) { int tmp ; { if ((unsigned long )s1 == (unsigned long )((char const *)0) && (unsigned long )s2 == (unsigned long )((char const *)0)) { return (0); } else { } if ((unsigned long )s1 != (unsigned long )((char const *)0) && (unsigned long )s2 == (unsigned long )((char const *)0)) { return (-1); } else { } if ((unsigned long )s1 == (unsigned long )((char const *)0) && (unsigned long )s2 != (unsigned long )((char const *)0)) { return (1); } else { } tmp = strcmp(s1, s2); return (tmp); } } static int compare_mount_options(struct ceph_mount_options *new_fsopt , struct ceph_options *new_opt , struct ceph_fs_client *fsc ) { struct ceph_mount_options *fsopt1 ; struct ceph_mount_options *fsopt2 ; int ofs ; int ret ; int tmp ; { fsopt1 = new_fsopt; fsopt2 = fsc->mount_options; ofs = 48; ret = memcmp((void const *)fsopt1, (void const *)fsopt2, (size_t )ofs); if (ret != 0) { return (ret); } else { } ret = strcmp_null((char const *)fsopt1->snapdir_name, (char const *)fsopt2->snapdir_name); if (ret != 0) { return (ret); } else { } tmp = ceph_compare_options(new_opt, fsc->client); return (tmp); } } static int parse_mount_options(struct ceph_mount_options **pfsopt , struct ceph_options **popt , int flags , char *options , char const *dev_name___0 , char const **path ) { struct ceph_mount_options *fsopt ; char const *dev_name_end ; int err ; void *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; char *tmp___2 ; size_t tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; struct _ddebug descriptor___1 ; char const *tmp___6 ; long tmp___7 ; long tmp___8 ; long tmp___9 ; { if ((unsigned long )dev_name___0 == (unsigned long )((char const *)0) || (int )((signed char )*dev_name___0) == 0) { return (-22); } else { } tmp = kzalloc(56UL, 208U); fsopt = (struct ceph_mount_options *)tmp; if ((unsigned long )fsopt == (unsigned long )((struct ceph_mount_options *)0)) { return (-12); } else { } descriptor.modname = "ceph"; descriptor.function = "parse_mount_options"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : parse_mount_options %p, dev_name \'%s\'\n"; descriptor.lineno = 391U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : parse_mount_options %p, dev_name \'%s\'\n", 3, (char *)" ", tmp___0, 391, fsopt, dev_name___0); } else { } fsopt->sb_flags = flags; fsopt->flags = 32; fsopt->rsize = 0; fsopt->rasize = 8388608; fsopt->snapdir_name = kstrdup(".snap", 208U); fsopt->caps_wanted_delay_min = 5; fsopt->caps_wanted_delay_max = 60; fsopt->cap_release_safety = 680; fsopt->max_readdir = 1024; fsopt->max_readdir_bytes = 524288; fsopt->congestion_kb = default_congestion_kb(); tmp___2 = strchr(dev_name___0, 47); dev_name_end = (char const *)tmp___2; if ((unsigned long )dev_name_end != (unsigned long )((char const *)0)) { *path = dev_name_end + 1UL; } else { tmp___3 = strlen(dev_name___0); dev_name_end = dev_name___0 + tmp___3; *path = dev_name_end; } err = -22; dev_name_end = dev_name_end - 1; if ((int )((signed char )*dev_name_end) != 58) { printk("\vceph: device name is missing path (no : separator in %s)\n", dev_name___0); goto out; } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "parse_mount_options"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : device name \'%.*s\'\n"; descriptor___0.lineno = 432U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : device name \'%.*s\'\n", 3, (char *)" ", tmp___4, 432, (int )((unsigned int )((long )dev_name_end) - (unsigned int )((long )dev_name___0)), dev_name___0); } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "parse_mount_options"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : server path \'%s\'\n"; descriptor___1.lineno = 433U; descriptor___1.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : server path \'%s\'\n", 3, (char *)" ", tmp___6, 433, *path); } else { } *popt = ceph_parse_options(options, dev_name___0, dev_name_end, & parse_fsopt_token, (void *)fsopt); tmp___9 = IS_ERR((void const *)*popt); if (tmp___9 != 0L) { tmp___8 = PTR_ERR((void const *)*popt); err = (int )tmp___8; goto out; } else { } *pfsopt = fsopt; return (0); out: destroy_mount_options(fsopt); return (err); } } static int ceph_show_options(struct seq_file *m , struct dentry *root ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mount_options *fsopt ; struct ceph_options *opt ; int tmp___0 ; int tmp___1 ; { tmp = ceph_sb_to_client(root->d_sb); fsc = tmp; fsopt = fsc->mount_options; opt = (fsc->client)->options; if (opt->flags & 1) { seq_printf(m, ",fsid=%pU", & opt->fsid); } else { } if ((opt->flags & 2) != 0) { seq_puts(m, ",noshare"); } else { } if ((opt->flags & 8) != 0) { seq_puts(m, ",nocrc"); } else { } if ((unsigned long )opt->name != (unsigned long )((char *)0)) { seq_printf(m, ",name=%s", opt->name); } else { } if ((unsigned long )opt->key != (unsigned long )((struct ceph_crypto_key *)0)) { seq_puts(m, ",secret="); } else { } if (opt->mount_timeout != 60) { seq_printf(m, ",mount_timeout=%d", opt->mount_timeout); } else { } if (opt->osd_idle_ttl != 60) { seq_printf(m, ",osd_idle_ttl=%d", opt->osd_idle_ttl); } else { } if (opt->osd_keepalive_timeout != 5) { seq_printf(m, ",osdkeepalivetimeout=%d", opt->osd_keepalive_timeout); } else { } if ((fsopt->flags & 16) != 0) { seq_puts(m, ",dirstat"); } else { } if ((fsopt->flags & 32) == 0) { seq_puts(m, ",norbytes"); } else { } if ((fsopt->flags & 128) != 0) { seq_puts(m, ",noasyncreaddir"); } else { } if ((fsopt->flags & 512) != 0) { seq_puts(m, ",dcache"); } else { seq_puts(m, ",nodcache"); } if (fsopt->wsize != 0) { seq_printf(m, ",wsize=%d", fsopt->wsize); } else { } if (fsopt->rsize != 0) { seq_printf(m, ",rsize=%d", fsopt->rsize); } else { } if (fsopt->rasize != 8388608) { seq_printf(m, ",rasize=%d", fsopt->rasize); } else { } tmp___0 = default_congestion_kb(); if (fsopt->congestion_kb != tmp___0) { seq_printf(m, ",write_congestion_kb=%d", fsopt->congestion_kb); } else { } if (fsopt->caps_wanted_delay_min != 5) { seq_printf(m, ",caps_wanted_delay_min=%d", fsopt->caps_wanted_delay_min); } else { } if (fsopt->caps_wanted_delay_max != 60) { seq_printf(m, ",caps_wanted_delay_max=%d", fsopt->caps_wanted_delay_max); } else { } if (fsopt->cap_release_safety != 680) { seq_printf(m, ",cap_release_safety=%d", fsopt->cap_release_safety); } else { } if (fsopt->max_readdir != 1024) { seq_printf(m, ",readdir_max_entries=%d", fsopt->max_readdir); } else { } if (fsopt->max_readdir_bytes != 524288) { seq_printf(m, ",readdir_max_bytes=%d", fsopt->max_readdir_bytes); } else { } tmp___1 = strcmp((char const *)fsopt->snapdir_name, ".snap"); if (tmp___1 != 0) { seq_printf(m, ",snapdirname=%s", fsopt->snapdir_name); } else { } return (0); } } static int extra_mon_dispatch(struct ceph_client *client , struct ceph_msg *msg ) { struct ceph_fs_client *fsc ; int type ; { fsc = (struct ceph_fs_client *)client->private; type = (int )msg->hdr.type; switch (type) { case 21: ceph_mdsc_handle_map(fsc->mdsc, msg); return (0); default: ; return (-1); } } } static struct ceph_fs_client *create_fs_client(struct ceph_mount_options *fsopt , struct ceph_options *opt ) { struct ceph_fs_client *fsc ; unsigned int supported_features ; unsigned int required_features ; int err ; void *tmp ; void *tmp___0 ; long tmp___1 ; long tmp___2 ; struct lock_class_key __key ; char const *__lock_name ; struct workqueue_struct *tmp___3 ; struct lock_class_key __key___0 ; char const *__lock_name___0 ; struct workqueue_struct *tmp___4 ; struct lock_class_key __key___1 ; char const *__lock_name___1 ; struct workqueue_struct *tmp___5 ; void *tmp___6 ; { supported_features = 136U; required_features = 0U; err = -12; tmp = kzalloc(1400UL, 208U); fsc = (struct ceph_fs_client *)tmp; if ((unsigned long )fsc == (unsigned long )((struct ceph_fs_client *)0)) { tmp___0 = ERR_PTR(-12L); return ((struct ceph_fs_client *)tmp___0); } else { } fsc->client = ceph_create_client(opt, (void *)fsc, supported_features, required_features); tmp___2 = IS_ERR((void const *)fsc->client); if (tmp___2 != 0L) { tmp___1 = PTR_ERR((void const *)fsc->client); err = (int )tmp___1; goto fail; } else { } (fsc->client)->extra_mon_dispatch = & extra_mon_dispatch; (fsc->client)->monc.want_mdsmap = 1; fsc->mount_options = fsopt; fsc->sb = 0; fsc->mount_state = 0UL; atomic_long_set(& fsc->writeback_count, 0L); err = bdi_init(& fsc->backing_dev_info); if (err < 0) { goto fail_client; } else { } err = -12; __lock_name = "ceph-writeback"; tmp___3 = __alloc_workqueue_key("ceph-writeback", 0U, 1, & __key, __lock_name); fsc->wb_wq = tmp___3; if ((unsigned long )fsc->wb_wq == (unsigned long )((struct workqueue_struct *)0)) { goto fail_bdi; } else { } __lock_name___0 = "ceph-pg-invalid"; tmp___4 = __alloc_workqueue_key("ceph-pg-invalid", 0U, 1, & __key___0, __lock_name___0); fsc->pg_inv_wq = tmp___4; if ((unsigned long )fsc->pg_inv_wq == (unsigned long )((struct workqueue_struct *)0)) { goto fail_wb_wq; } else { } __lock_name___1 = "ceph-trunc"; tmp___5 = __alloc_workqueue_key("ceph-trunc", 0U, 1, & __key___1, __lock_name___1); fsc->trunc_wq = tmp___5; if ((unsigned long )fsc->trunc_wq == (unsigned long )((struct workqueue_struct *)0)) { goto fail_pg_inv_wq; } else { } err = -12; fsc->wb_pagevec_pool = mempool_create_kmalloc_pool(10, (size_t )((fsc->mount_options)->wsize >> 12)); if ((unsigned long )fsc->wb_pagevec_pool == (unsigned long )((mempool_t *)0)) { goto fail_trunc_wq; } else { } fsc->min_caps = fsopt->max_readdir; return (fsc); fail_trunc_wq: destroy_workqueue(fsc->trunc_wq); fail_pg_inv_wq: destroy_workqueue(fsc->pg_inv_wq); fail_wb_wq: destroy_workqueue(fsc->wb_wq); fail_bdi: bdi_destroy(& fsc->backing_dev_info); fail_client: ceph_destroy_client(fsc->client); fail: kfree((void const *)fsc); tmp___6 = ERR_PTR((long )err); return ((struct ceph_fs_client *)tmp___6); } } static void destroy_fs_client(struct ceph_fs_client *fsc ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; { descriptor.modname = "ceph"; descriptor.function = "destroy_fs_client"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : destroy_fs_client %p\n"; descriptor.lineno = 619U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : destroy_fs_client %p\n", 3, (char *)" ", tmp, 619, fsc); } else { } destroy_workqueue(fsc->wb_wq); destroy_workqueue(fsc->pg_inv_wq); destroy_workqueue(fsc->trunc_wq); bdi_destroy(& fsc->backing_dev_info); mempool_destroy(fsc->wb_pagevec_pool); destroy_mount_options(fsc->mount_options); ceph_fs_debugfs_cleanup(fsc); ceph_destroy_client(fsc->client); kfree((void const *)fsc); descriptor___0.modname = "ceph"; descriptor___0.function = "destroy_fs_client"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : destroy_fs_client %p done\n"; descriptor___0.lineno = 636U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : destroy_fs_client %p done\n", 3, (char *)" ", tmp___1, 636, fsc); } else { } return; } } static void ceph_inode_init_once(void *foo ) { struct ceph_inode_info *ci ; { ci = (struct ceph_inode_info *)foo; inode_init_once(& ci->vfs_inode); return; } } static int init_caches(void) { { ceph_inode_cachep = kmem_cache_create("ceph_inode_info", 2280UL, 8UL, 1179648UL, & ceph_inode_init_once); if ((unsigned long )ceph_inode_cachep == (unsigned long )((struct kmem_cache *)0)) { return (-12); } else { } ceph_cap_cachep = kmem_cache_create("ceph_cap", 128UL, 8UL, 1179648UL, 0); if ((unsigned long )ceph_cap_cachep == (unsigned long )((struct kmem_cache *)0)) { goto bad_cap; } else { } ceph_dentry_cachep = kmem_cache_create("ceph_dentry_info", 88UL, 8UL, 1179648UL, 0); if ((unsigned long )ceph_dentry_cachep == (unsigned long )((struct kmem_cache *)0)) { goto bad_dentry; } else { } ceph_file_cachep = kmem_cache_create("ceph_file_info", 72UL, 8UL, 1179648UL, 0); if ((unsigned long )ceph_file_cachep == (unsigned long )((struct kmem_cache *)0)) { goto bad_file; } else { } return (0); bad_file: kmem_cache_destroy(ceph_dentry_cachep); bad_dentry: kmem_cache_destroy(ceph_cap_cachep); bad_cap: kmem_cache_destroy(ceph_inode_cachep); return (-12); } } static void destroy_caches(void) { { rcu_barrier(); kmem_cache_destroy(ceph_inode_cachep); kmem_cache_destroy(ceph_cap_cachep); kmem_cache_destroy(ceph_dentry_cachep); kmem_cache_destroy(ceph_file_cachep); return; } } static void ceph_umount_begin(struct super_block *sb ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { tmp = ceph_sb_to_client(sb); fsc = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_umount_begin"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_umount_begin - starting forced umount\n"; descriptor.lineno = 711U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_umount_begin - starting forced umount\n", 3, (char *)" ", tmp___0, 711); } else { } if ((unsigned long )fsc == (unsigned long )((struct ceph_fs_client *)0)) { return; } else { } fsc->mount_state = 4UL; return; } } static struct super_operations const ceph_super_ops = {& ceph_alloc_inode, & ceph_destroy_inode, 0, & ceph_write_inode, 0, 0, & ceph_put_super, & ceph_sync_fs, 0, 0, & ceph_statfs, 0, & ceph_umount_begin, & ceph_show_options, 0, 0, 0, 0, 0, 0, 0, 0}; static struct dentry *open_root_dentry(struct ceph_fs_client *fsc , char const *path , unsigned long started ) { struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; int err ; struct dentry *root ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; void *tmp___1 ; long tmp___2 ; struct inode *inode ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; void *tmp___5 ; u64 tmp___6 ; struct _ddebug descriptor___1 ; char const *tmp___7 ; long tmp___8 ; void *tmp___9 ; { mdsc = fsc->mdsc; req = 0; descriptor.modname = "ceph"; descriptor.function = "open_root_dentry"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : open_root_inode opening \'%s\'\n"; descriptor.lineno = 743U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : open_root_inode opening \'%s\'\n", 3, (char *)" ", tmp, 743, path); } else { } req = ceph_mdsc_create_request(mdsc, 257, 0); tmp___2 = IS_ERR((void const *)req); if (tmp___2 != 0L) { tmp___1 = ERR_CAST((void const *)req); return ((struct dentry *)tmp___1); } else { } req->r_path1 = kstrdup(path, 80U); req->r_ino1.ino = 1ULL; req->r_ino1.snap = 0xfffffffffffffffeULL; req->r_started = started; req->r_timeout = (unsigned long )(((fsc->client)->options)->mount_timeout * 250); req->r_args.getattr.mask = 1U; req->r_num_caps = 2; err = ceph_mdsc_do_request(mdsc, 0, req); if (err == 0) { inode = req->r_target_inode; req->r_target_inode = 0; descriptor___0.modname = "ceph"; descriptor___0.function = "open_root_dentry"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : open_root_inode success\n"; descriptor___0.lineno = 758U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : open_root_inode success\n", 3, (char *)" ", tmp___3, 758); } else { } tmp___6 = ceph_ino(inode); if (tmp___6 == 1ULL && (unsigned long )(fsc->sb)->s_root == (unsigned long )((struct dentry *)0)) { root = d_make_root(inode); if ((unsigned long )root == (unsigned long )((struct dentry *)0)) { tmp___5 = ERR_PTR(-12L); root = (struct dentry *)tmp___5; goto out; } else { } } else { root = d_obtain_alias(inode); } ceph_init_dentry(root); descriptor___1.modname = "ceph"; descriptor___1.function = "open_root_dentry"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : open_root_inode success, root dentry is %p\n"; descriptor___1.lineno = 770U; descriptor___1.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : open_root_inode success, root dentry is %p\n", 3, (char *)" ", tmp___7, 770, root); } else { } } else { tmp___9 = ERR_PTR((long )err); root = (struct dentry *)tmp___9; } out: ceph_mdsc_put_request(req); return (root); } } static struct dentry *ceph_real_mount(struct ceph_fs_client *fsc , char const *path ) { int err ; unsigned long started ; struct dentry *root ; int first ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; long tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; long tmp___7 ; long tmp___8 ; struct _ddebug descriptor___2 ; char const *tmp___9 ; long tmp___10 ; void *tmp___11 ; { started = jiffies; first = 0; descriptor.modname = "ceph"; descriptor.function = "ceph_real_mount"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : mount start\n"; descriptor.lineno = 793U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : mount start\n", 3, (char *)" ", tmp, 793); } else { } ldv_mutex_lock_5(& (fsc->client)->mount_mutex); err = __ceph_open_session(fsc->client, started); if (err < 0) { goto out; } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_real_mount"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mount opening root\n"; descriptor___0.lineno = 800U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mount opening root\n", 3, (char *)" ", tmp___1, 800); } else { } root = open_root_dentry(fsc, "", started); tmp___4 = IS_ERR((void const *)root); if (tmp___4 != 0L) { tmp___3 = PTR_ERR((void const *)root); err = (int )tmp___3; goto out; } else { } if ((unsigned long )(fsc->sb)->s_root != (unsigned long )((struct dentry *)0)) { dput(root); } else { (fsc->sb)->s_root = root; first = 1; err = ceph_fs_debugfs_init(fsc); if (err < 0) { goto fail; } else { } } if ((int )((signed char )*path) == 0) { dget(root); } else { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_real_mount"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : mount opening base mountpoint\n"; descriptor___1.lineno = 820U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : mount opening base mountpoint\n", 3, (char *)" ", tmp___5, 820); } else { } root = open_root_dentry(fsc, path, started); tmp___8 = IS_ERR((void const *)root); if (tmp___8 != 0L) { tmp___7 = PTR_ERR((void const *)root); err = (int )tmp___7; goto fail; } else { } } fsc->mount_state = 1UL; descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_real_mount"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : mount success\n"; descriptor___2.lineno = 829U; descriptor___2.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : mount success\n", 3, (char *)" ", tmp___9, 829); } else { } ldv_mutex_unlock_6(& (fsc->client)->mount_mutex); return (root); out: ldv_mutex_unlock_7(& (fsc->client)->mount_mutex); tmp___11 = ERR_PTR((long )err); return ((struct dentry *)tmp___11); fail: ; if (first != 0) { dput((fsc->sb)->s_root); (fsc->sb)->s_root = 0; } else { } goto out; } } static int ceph_set_super(struct super_block *s , void *data ) { struct ceph_fs_client *fsc ; int ret ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { fsc = (struct ceph_fs_client *)data; descriptor.modname = "ceph"; descriptor.function = "ceph_set_super"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : set_super %p data %p\n"; descriptor.lineno = 850U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : set_super %p data %p\n", 3, (char *)" ", tmp, 850, s, data); } else { } s->s_flags = (unsigned long )(fsc->mount_options)->sb_flags; s->s_maxbytes = 1099511627776LL; s->s_fs_info = (void *)fsc; fsc->sb = s; s->s_op = & ceph_super_ops; s->s_export_op = & ceph_export_ops; s->s_time_gran = 1000U; ret = set_anon_super(s, 0); if (ret != 0) { goto fail; } else { } return (ret); fail: s->s_fs_info = 0; fsc->sb = 0; return (ret); } } static int ceph_compare_super(struct super_block *sb , void *data ) { struct ceph_fs_client *new ; struct ceph_mount_options *fsopt ; struct ceph_options *opt ; struct ceph_fs_client *other ; struct ceph_fs_client *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; int tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; int tmp___7 ; struct _ddebug descriptor___2 ; char const *tmp___8 ; long tmp___9 ; { new = (struct ceph_fs_client *)data; fsopt = new->mount_options; opt = (new->client)->options; tmp = ceph_sb_to_client(sb); other = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_compare_super"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_compare_super %p\n"; descriptor.lineno = 885U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_compare_super %p\n", 3, (char *)" ", tmp___0, 885, sb); } else { } tmp___4 = compare_mount_options(fsopt, opt, other); if (tmp___4 != 0) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_compare_super"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : monitor(s)/mount options don\'t match\n"; descriptor___0.lineno = 888U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : monitor(s)/mount options don\'t match\n", 3, (char *)" ", tmp___2, 888); } else { } return (0); } else { } if (opt->flags & 1) { tmp___7 = ceph_fsid_compare((struct ceph_fsid const *)(& opt->fsid), (struct ceph_fsid const *)(& (other->client)->fsid)); if (tmp___7 != 0) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_compare_super"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : fsid doesn\'t match\n"; descriptor___1.lineno = 893U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : fsid doesn\'t match\n", 3, (char *)" ", tmp___5, 893); } else { } return (0); } else { } } else { } if (fsopt->sb_flags != (other->mount_options)->sb_flags) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_compare_super"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : flags differ\n"; descriptor___2.lineno = 897U; descriptor___2.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : flags differ\n", 3, (char *)" ", tmp___8, 897); } else { } return (0); } else { } return (1); } } static atomic_long_t bdi_seq = {0L}; static int ceph_register_bdi(struct super_block *sb , struct ceph_fs_client *fsc ) { int err ; long tmp ; { if ((unsigned int )(fsc->mount_options)->rasize > 4095U) { fsc->backing_dev_info.ra_pages = ((unsigned long )(fsc->mount_options)->rasize + 4095UL) >> 12; } else { fsc->backing_dev_info.ra_pages = default_backing_dev_info.ra_pages; } tmp = atomic_long_inc_return(& bdi_seq); err = bdi_register(& fsc->backing_dev_info, 0, "ceph-%ld", tmp); if (err == 0) { sb->s_bdi = & fsc->backing_dev_info; } else { } return (err); } } static struct dentry *ceph_mount(struct file_system_type *fs_type , int flags , char const *dev_name___0 , void *data ) { struct super_block *sb ; struct ceph_fs_client *fsc ; struct dentry *res ; int err ; int (*compare_super)(struct super_block * , void * ) ; char const *path ; struct ceph_mount_options *fsopt ; struct ceph_options *opt ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; void *tmp___1 ; void *tmp___2 ; long tmp___3 ; void *tmp___4 ; void *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___0 ; char const *tmp___7 ; long tmp___8 ; struct _ddebug descriptor___1 ; char const *tmp___9 ; long tmp___10 ; void *tmp___11 ; struct ceph_fs_client *tmp___12 ; long tmp___13 ; struct _ddebug descriptor___2 ; struct ceph_inode_info *tmp___14 ; struct ceph_inode_info *tmp___15 ; char const *tmp___16 ; long tmp___17 ; struct _ddebug descriptor___3 ; long tmp___18 ; char const *tmp___19 ; long tmp___20 ; { compare_super = & ceph_compare_super; path = 0; fsopt = 0; opt = 0; descriptor.modname = "ceph"; descriptor.function = "ceph_mount"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_mount\n"; descriptor.lineno = 941U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_mount\n", 3, (char *)" ", tmp, 941); } else { } err = parse_mount_options(& fsopt, & opt, flags, (char *)data, dev_name___0, & path); if (err < 0) { tmp___1 = ERR_PTR((long )err); res = (struct dentry *)tmp___1; goto out_final; } else { } fsc = create_fs_client(fsopt, opt); tmp___3 = IS_ERR((void const *)fsc); if (tmp___3 != 0L) { tmp___2 = ERR_CAST((void const *)fsc); res = (struct dentry *)tmp___2; destroy_mount_options(fsopt); ceph_destroy_options(opt); goto out_final; } else { } err = ceph_mdsc_init(fsc); if (err < 0) { tmp___4 = ERR_PTR((long )err); res = (struct dentry *)tmp___4; goto out; } else { } if ((((fsc->client)->options)->flags & 2) != 0) { compare_super = 0; } else { } sb = sget(fs_type, compare_super, & ceph_set_super, flags, (void *)fsc); tmp___6 = IS_ERR((void const *)sb); if (tmp___6 != 0L) { tmp___5 = ERR_CAST((void const *)sb); res = (struct dentry *)tmp___5; goto out; } else { } tmp___12 = ceph_sb_to_client(sb); if ((unsigned long )tmp___12 != (unsigned long )fsc) { ceph_mdsc_destroy(fsc); destroy_fs_client(fsc); fsc = ceph_sb_to_client(sb); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_mount"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : get_sb got existing client %p\n"; descriptor___0.lineno = 975U; descriptor___0.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : get_sb got existing client %p\n", 3, (char *)" ", tmp___7, 975, fsc); } else { } } else { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_mount"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : get_sb using new client %p\n"; descriptor___1.lineno = 977U; descriptor___1.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : get_sb using new client %p\n", 3, (char *)" ", tmp___9, 977, fsc); } else { } err = ceph_register_bdi(sb, fsc); if (err < 0) { tmp___11 = ERR_PTR((long )err); res = (struct dentry *)tmp___11; goto out_splat; } else { } } res = ceph_real_mount(fsc, path); tmp___13 = IS_ERR((void const *)res); if (tmp___13 != 0L) { goto out_splat; } else { } descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_mount"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : root %p inode %p ino %llx.%llx\n"; descriptor___2.lineno = 989U; descriptor___2.flags = 0U; tmp___17 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___17 != 0L) { tmp___14 = ceph_inode(res->d_inode); tmp___15 = ceph_inode(res->d_inode); tmp___16 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : root %p inode %p ino %llx.%llx\n", 3, (char *)" ", tmp___16, 989, res, res->d_inode, tmp___15->i_vino.ino, tmp___14->i_vino.snap); } else { } return (res); out_splat: ceph_mdsc_close_sessions(fsc->mdsc); deactivate_locked_super(sb); goto out_final; out: ceph_mdsc_destroy(fsc); destroy_fs_client(fsc); out_final: descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_mount"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : ceph_mount fail %ld\n"; descriptor___3.lineno = 1001U; descriptor___3.flags = 0U; tmp___20 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___20 != 0L) { tmp___18 = PTR_ERR((void const *)res); tmp___19 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : ceph_mount fail %ld\n", 3, (char *)" ", tmp___19, 1001, tmp___18); } else { } return (res); } } static void ceph_kill_sb(struct super_block *s ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { tmp = ceph_sb_to_client(s); fsc = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_kill_sb"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : kill_sb %p\n"; descriptor.lineno = 1008U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : kill_sb %p\n", 3, (char *)" ", tmp___0, 1008, s); } else { } ceph_mdsc_pre_umount(fsc->mdsc); kill_anon_super(s); ceph_mdsc_destroy(fsc); destroy_fs_client(fsc); return; } } static struct file_system_type ceph_fs_type = {"ceph", 32768, & ceph_mount, & ceph_kill_sb, & __this_module, 0, {0}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}}}, {{{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}}}}; static int init_ceph(void) { int ret ; int tmp ; { tmp = init_caches(); ret = tmp; if (ret != 0) { goto out; } else { } ceph_xattr_init(); ret = register_filesystem(& ceph_fs_type); if (ret != 0) { goto out_icache; } else { } printk("\016ceph: loaded (mds proto %d)\n", 32); return (0); out_icache: ceph_xattr_exit(); destroy_caches(); out: ; return (ret); } } static void exit_ceph(void) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { descriptor.modname = "ceph"; descriptor.function = "exit_ceph"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : exit_ceph\n"; descriptor.lineno = 1050U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/super.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : exit_ceph\n", 3, (char *)" ", tmp, 1050); } else { } unregister_filesystem(& ceph_fs_type); ceph_xattr_exit(); destroy_caches(); return; } } void ldv_check_final_state(void) ; void ldv_initialize(void) ; extern void ldv_handler_precall(void) ; extern int __VERIFIER_nondet_int(void) ; int LDV_IN_INTERRUPT ; void ldv_main0_sequence_infinite_withcheck_stateful(void) { struct super_block *var_group1 ; int var_ceph_sync_fs_2_p1 ; struct seq_file *var_group2 ; struct dentry *var_group3 ; struct kstatfs *var_group4 ; struct file_system_type *var_group5 ; int var_ceph_mount_21_p1 ; char const *var_ceph_mount_21_p2 ; void *var_ceph_mount_21_p3 ; int tmp ; int tmp___0 ; int tmp___1 ; { LDV_IN_INTERRUPT = 1; ldv_initialize(); ldv_handler_precall(); tmp = init_ceph(); if (tmp != 0) { goto ldv_final; } else { } goto ldv_30338; ldv_30337: tmp___0 = __VERIFIER_nondet_int(); switch (tmp___0) { case 0: ldv_handler_precall(); ceph_sync_fs(var_group1, var_ceph_sync_fs_2_p1); goto ldv_30329; case 1: ldv_handler_precall(); ceph_put_super(var_group1); goto ldv_30329; case 2: ldv_handler_precall(); ceph_show_options(var_group2, var_group3); goto ldv_30329; case 3: ldv_handler_precall(); ceph_statfs(var_group3, var_group4); goto ldv_30329; case 4: ldv_handler_precall(); ceph_umount_begin(var_group1); goto ldv_30329; case 5: ldv_handler_precall(); ceph_mount(var_group5, var_ceph_mount_21_p1, var_ceph_mount_21_p2, var_ceph_mount_21_p3); goto ldv_30329; case 6: ldv_handler_precall(); ceph_kill_sb(var_group1); goto ldv_30329; default: ; goto ldv_30329; } ldv_30329: ; ldv_30338: tmp___1 = __VERIFIER_nondet_int(); if (tmp___1 != 0) { goto ldv_30337; } else { } ldv_handler_precall(); exit_ceph(); ldv_final: ldv_check_final_state(); return; } } void ldv_mutex_lock_1(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_2(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_3(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_4(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_5(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mount_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_6(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mount_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_7(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mount_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } __inline static int fls(int x ) { int r ; { __asm__ ("bsrl %1,%0": "=r" (r): "rm" (x), "0" (-1)); return (r + 1); } } __inline static void INIT_LIST_HEAD(struct list_head *list ) { { list->next = list; list->prev = list; return; } } extern void __list_add(struct list_head * , struct list_head * , struct list_head * ) ; __inline static void list_add(struct list_head *new , struct list_head *head ) { { __list_add(new, head, head->next); return; } } extern void __list_del_entry(struct list_head * ) ; __inline static void list_del_init(struct list_head *entry ) { { __list_del_entry(entry); INIT_LIST_HEAD(entry); return; } } __inline static void list_move(struct list_head *list , struct list_head *head ) { { __list_del_entry(list); list_add(list, head); return; } } __inline static int list_empty(struct list_head const *head ) { { return ((unsigned long )((struct list_head const *)head->next) == (unsigned long )head); } } extern void *memcpy(void * , void const * , size_t ) ; extern void *memset(void * , int , size_t ) ; extern int strncmp(char const * , char const * , __kernel_size_t ) ; __inline static void atomic_inc(atomic_t *v ) { { __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; incl %0": "+m" (v->counter)); return; } } extern void lockdep_init_map(struct lockdep_map * , char const * , struct lock_class_key * , int ) ; extern void __mutex_init(struct mutex * , char const * , struct lock_class_key * ) ; void ldv_mutex_unlock_16(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_18(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_20(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_22(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_24(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_26(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_15(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_17(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_19(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_21(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_23(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_25(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_i_fragtree_mutex(struct mutex *lock ) ; void ldv_mutex_unlock_i_fragtree_mutex(struct mutex *lock ) ; void ldv_mutex_lock_i_mutex(struct mutex *lock ) ; void ldv_mutex_unlock_i_mutex(struct mutex *lock ) ; extern void __raw_spin_lock_init(raw_spinlock_t * , char const * , struct lock_class_key * ) ; extern void _raw_spin_lock_nested(raw_spinlock_t * , int ) ; __inline static raw_spinlock_t *spinlock_check(spinlock_t *lock ) { { return (& lock->ldv_5961.rlock); } } __inline static int timespec_equal(struct timespec const *a , struct timespec const *b ) { { return ((long )a->tv_sec == (long )b->tv_sec && (long )a->tv_nsec == (long )b->tv_nsec); } } __inline static int timespec_compare(struct timespec const *lhs , struct timespec const *rhs ) { { if ((long )lhs->tv_sec < (long )rhs->tv_sec) { return (-1); } else { } if ((long )lhs->tv_sec > (long )rhs->tv_sec) { return (1); } else { } return ((int )((unsigned int )lhs->tv_nsec - (unsigned int )rhs->tv_nsec)); } } extern struct timespec current_kernel_time(void) ; extern void __init_waitqueue_head(wait_queue_head_t * , char const * , struct lock_class_key * ) ; extern void __wake_up(wait_queue_head_t * , unsigned int , int , void * ) ; extern void call_rcu_sched(struct callback_head * , void (*)(struct callback_head * ) ) ; extern void __init_work(struct work_struct * , int ) ; extern bool queue_work(struct workqueue_struct * , struct work_struct * ) ; extern void rb_insert_color(struct rb_node * , struct rb_root * ) ; extern void rb_erase(struct rb_node * , struct rb_root * ) ; extern struct rb_node *rb_first(struct rb_root const * ) ; __inline static void rb_link_node(struct rb_node *node , struct rb_node *parent , struct rb_node **rb_link ) { struct rb_node *tmp ; { node->__rb_parent_color = (unsigned long )parent; tmp = 0; node->rb_right = tmp; node->rb_left = tmp; *rb_link = node; return; } } __inline static int hlist_bl_unhashed(struct hlist_bl_node const *h ) { { return ((unsigned long )h->pprev == (unsigned long )((struct hlist_bl_node **/* const */)0)); } } extern unsigned int full_name_hash(unsigned char const * , unsigned int ) ; extern void d_instantiate(struct dentry * , struct inode * ) ; extern struct dentry *d_materialise_unique(struct dentry * , struct inode * ) ; extern void d_drop(struct dentry * ) ; extern void d_delete(struct dentry * ) ; extern struct dentry *d_alloc(struct dentry * , struct qstr const * ) ; extern struct dentry *d_find_alias(struct inode * ) ; extern void d_rehash(struct dentry * ) ; extern void d_move(struct dentry * , struct dentry * ) ; extern struct dentry *d_lookup(struct dentry * , struct qstr * ) ; __inline static int d_unhashed(struct dentry *dentry ) { int tmp ; { tmp = hlist_bl_unhashed((struct hlist_bl_node const *)(& dentry->d_hash)); return (tmp); } } __inline static int mapping_mapped(struct address_space *mapping ) { int tmp ; int tmp___0 ; { if ((unsigned long )mapping->i_mmap.rb_node != (unsigned long )((struct rb_node *)0)) { tmp___0 = 1; } else { tmp = list_empty((struct list_head const *)(& mapping->i_mmap_nonlinear)); if (tmp == 0) { tmp___0 = 1; } else { tmp___0 = 0; } } return (tmp___0); } } extern void __mark_inode_dirty(struct inode * , int ) ; extern void set_nlink(struct inode * , unsigned int ) ; extern void init_special_inode(struct inode * , umode_t , dev_t ) ; extern int filemap_fdatawrite(struct address_space * ) ; extern int filemap_write_and_wait_range(struct address_space * , loff_t , loff_t ) ; extern int generic_permission(struct inode * , int ) ; extern void ihold(struct inode * ) ; extern void iput(struct inode * ) ; extern struct inode *iget5_locked(struct super_block * , unsigned long , int (*)(struct inode * , void * ) , int (*)(struct inode * , void * ) , void * ) ; extern void unlock_new_inode(struct inode * ) ; extern int generic_readlink(struct dentry * , char * , int ) ; extern void generic_fillattr(struct inode * , struct kstat * ) ; extern int inode_change_ok(struct inode const * , struct iattr * ) ; extern void kmem_cache_free(struct kmem_cache * , void * ) ; extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t ) ; __inline static void nd_set_link(struct nameidata *nd , char *path ) { { nd->saved_names[nd->depth] = path; return; } } extern void truncate_inode_pages(struct address_space * , loff_t ) ; __inline static __s32 ceph_seq_cmp(__u32 a , __u32 b ) { { return ((int )a - (int )b); } } __inline static __u32 ceph_frag_make(__u32 b , __u32 v ) { { return ((b << 24) | (((16777215U << (int )(24U - b)) & v) & 16777215U)); } } __inline static __u32 ceph_frag_bits(__u32 f ) { { return (f >> 24); } } __inline static __u32 ceph_frag_value(__u32 f ) { { return (f & 16777215U); } } __inline static __u32 ceph_frag_mask(__u32 f ) { __u32 tmp ; { tmp = ceph_frag_bits(f); return ((16777215U << (int )(24U - tmp)) & 16777215U); } } __inline static int ceph_frag_contains_value(__u32 f , __u32 v ) { __u32 tmp ; __u32 tmp___0 ; { tmp = ceph_frag_mask(f); tmp___0 = ceph_frag_value(f); return ((tmp & v) == tmp___0); } } __inline static __u32 ceph_frag_make_child(__u32 f , int by , int i ) { int newbits ; __u32 tmp ; __u32 tmp___0 ; __u32 tmp___1 ; { tmp = ceph_frag_bits(f); newbits = (int )(tmp + (__u32 )by); tmp___0 = ceph_frag_value(f); tmp___1 = ceph_frag_make((__u32 )newbits, tmp___0 | (__u32 )(i << (24 - newbits))); return (tmp___1); } } int ceph_frag_compare(__u32 a , __u32 b ) ; extern struct ceph_buffer *ceph_buffer_new(size_t , gfp_t ) ; extern void ceph_buffer_release(struct kref * ) ; __inline static void ceph_buffer_put(struct ceph_buffer *b ) { { kref_put(& b->kref, & ceph_buffer_release); return; } } __inline static u32 ceph_ino_to_ino32(__u64 vino ) { u32 ino ; { ino = (u32 )vino; ino = (u32 )(vino >> 32) ^ ino; if (ino == 0U) { ino = 2U; } else { } return (ino); } } __inline static ino_t ceph_vino_to_ino(struct ceph_vino vino ) { { return ((ino_t )vino.ino); } } __inline static ino_t ceph_translate_ino(struct super_block *sb , ino_t ino ) { u32 tmp ; struct ceph_fs_client *tmp___0 ; { tmp___0 = ceph_sb_to_client(sb); if (((tmp___0->mount_options)->flags & 256) != 0) { tmp = ceph_ino_to_ino32((__u64 )ino); ino = (ino_t )tmp; } else { } return (ino); } } __inline static u64 ceph_snap(struct inode *inode ) { struct ceph_inode_info *tmp ; { tmp = ceph_inode(inode); return (tmp->i_vino.snap); } } __inline static int ceph_ino_compare(struct inode *inode , void *data ) { struct ceph_vino *pvino ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; { pvino = (struct ceph_vino *)data; tmp = ceph_inode(inode); ci = tmp; return (ci->i_vino.ino == pvino->ino && ci->i_vino.snap == pvino->snap); } } struct ceph_inode_frag *__ceph_find_frag(struct ceph_inode_info *ci , u32 f ) ; u32 ceph_choose_frag(struct ceph_inode_info *ci , u32 v , struct ceph_inode_frag *pfrag , int *found ) ; __inline static struct ceph_dentry_info *ceph_dentry(struct dentry *dentry ) { { return ((struct ceph_dentry_info *)dentry->d_fsdata); } } __inline static loff_t ceph_make_fpos(unsigned int frag , unsigned int off ) { { return (((long long )frag << 32) | (long long )off); } } void ceph_dir_set_complete(struct inode *inode ) ; bool ceph_dir_test_complete(struct inode *inode ) ; int __ceph_caps_issued(struct ceph_inode_info *ci , int *implemented ) ; int __ceph_caps_issued_mask(struct ceph_inode_info *ci , int mask , int touch ) ; __inline static int ceph_caps_issued_mask(struct ceph_inode_info *ci , int mask , int touch ) { int r ; { spin_lock(& ci->i_ceph_lock); r = __ceph_caps_issued_mask(ci, mask, touch); spin_unlock(& ci->i_ceph_lock); return (r); } } __inline static int __ceph_caps_dirty(struct ceph_inode_info *ci ) { { return ((int )(ci->i_dirty_caps | ci->i_flushing_caps)); } } int __ceph_mark_dirty_caps(struct ceph_inode_info *ci , int mask ) ; int __ceph_caps_file_wanted(struct ceph_inode_info *ci ) ; void ceph_put_snap_realm(struct ceph_mds_client *mdsc , struct ceph_snap_realm *realm ) ; struct inode_operations const ceph_file_iops ; struct inode *ceph_get_inode(struct super_block *sb , struct ceph_vino vino ) ; struct inode *ceph_get_snapdir(struct inode *parent ) ; int ceph_fill_file_size(struct inode *inode , int issued , u32 truncate_seq , u64 truncate_size , u64 size ) ; void ceph_fill_file_time(struct inode *inode , int issued , u64 time_warp_seq , struct timespec *ctime , struct timespec *mtime , struct timespec *atime ) ; int ceph_fill_trace(struct super_block *sb , struct ceph_mds_request *req , struct ceph_mds_session *session ) ; int ceph_readdir_prepopulate(struct ceph_mds_request *req , struct ceph_mds_session *session ) ; int ceph_inode_set_size(struct inode *inode , loff_t size ) ; void __ceph_do_pending_vmtruncate(struct inode *inode ) ; void ceph_queue_vmtruncate(struct inode *inode ) ; void ceph_queue_invalidate(struct inode *inode ) ; void ceph_queue_writeback(struct inode *inode ) ; int ceph_do_getattr(struct inode *inode , int mask ) ; int ceph_permission(struct inode *inode , int mask ) ; int ceph_setattr(struct dentry *dentry , struct iattr *attr ) ; int ceph_getattr(struct vfsmount *mnt , struct dentry *dentry , struct kstat *stat ) ; int ceph_setxattr(struct dentry *dentry , char const *name , void const *value , size_t size , int flags ) ; ssize_t ceph_getxattr(struct dentry *dentry , char const *name , void *value , size_t size ) ; ssize_t ceph_listxattr(struct dentry *dentry , char *names , size_t size ) ; int ceph_removexattr(struct dentry *dentry , char const *name ) ; void __ceph_destroy_xattrs(struct ceph_inode_info *ci ) ; char const *ceph_cap_string(int caps ) ; int ceph_add_cap(struct inode *inode , struct ceph_mds_session *session , u64 cap_id , int fmode , unsigned int issued , unsigned int wanted , unsigned int seq , unsigned int mseq , u64 realmino , int flags , struct ceph_cap_reservation *caps_reservation ) ; void ceph_queue_caps_release(struct inode *inode ) ; void ceph_check_caps(struct ceph_inode_info *ci , int flags , struct ceph_mds_session *session ) ; __inline static void __ceph_get_fmode(struct ceph_inode_info *ci , int mode ) { { ci->i_nr_by_mode[mode] = ci->i_nr_by_mode[mode] + 1; return; } } struct address_space_operations const ceph_aops ; struct file_operations const ceph_file_fops ; struct file_operations const ceph_dir_fops ; struct inode_operations const ceph_dir_iops ; struct dentry_operations const ceph_dentry_ops ; void ceph_dentry_lru_touch(struct dentry *dn ) ; void ceph_invalidate_dentry_lease(struct dentry *dentry ) ; struct inode *ceph_get_dentry_parent_inode(struct dentry *dentry ) ; __inline static struct ceph_mds_session *ceph_get_mds_session(struct ceph_mds_session *s ) { { atomic_inc(& s->s_ref); return (s); } } void ceph_invalidate_dir_request(struct ceph_mds_request *req ) ; __inline static void ceph_decode_timespec(struct timespec *ts , struct ceph_timespec const *tv ) { { ts->tv_sec = (__kernel_time_t )tv->tv_sec; ts->tv_nsec = (long )tv->tv_nsec; return; } } __inline static void ceph_encode_timespec(struct ceph_timespec *tv , struct timespec const *ts ) { { tv->tv_sec = (unsigned int )ts->tv_sec; tv->tv_nsec = (unsigned int )ts->tv_nsec; return; } } static struct inode_operations const ceph_symlink_iops ; static void ceph_invalidate_work(struct work_struct *work ) ; static void ceph_writeback_work(struct work_struct *work ) ; static void ceph_vmtruncate_work(struct work_struct *work ) ; static int ceph_set_ino_cb(struct inode *inode , void *data ) { struct ceph_inode_info *tmp ; { tmp = ceph_inode(inode); tmp->i_vino = *((struct ceph_vino *)data); inode->i_ino = ceph_vino_to_ino(*((struct ceph_vino *)data)); return (0); } } struct inode *ceph_get_inode(struct super_block *sb , struct ceph_vino vino ) { struct inode *inode ; ino_t t ; ino_t tmp ; void *tmp___0 ; struct _ddebug descriptor ; struct ceph_inode_info *tmp___1 ; struct ceph_inode_info *tmp___2 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___0 ; char const *tmp___5 ; long tmp___6 ; { tmp = ceph_vino_to_ino(vino); t = tmp; inode = iget5_locked(sb, t, & ceph_ino_compare, & ceph_set_ino_cb, (void *)(& vino)); if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { tmp___0 = ERR_PTR(-12L); return ((struct inode *)tmp___0); } else { } if ((inode->i_state & 8UL) != 0UL) { descriptor.modname = "ceph"; descriptor.function = "ceph_get_inode"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : get_inode created new inode %p %llx.%llx ino %llx\n"; descriptor.lineno = 127U; descriptor.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___1 = ceph_inode(inode); tmp___2 = ceph_inode(inode); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : get_inode created new inode %p %llx.%llx ino %llx\n", 3, (char *)" ", tmp___3, 127, inode, tmp___2->i_vino.ino, tmp___1->i_vino.snap, (unsigned long long )inode->i_ino); } else { } unlock_new_inode(inode); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_get_inode"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : get_inode on %lu=%llx.%llx got %p\n"; descriptor___0.lineno = 132U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : get_inode on %lu=%llx.%llx got %p\n", 3, (char *)" ", tmp___5, 132, inode->i_ino, vino.ino, vino.snap, inode); } else { } return (inode); } } struct inode *ceph_get_snapdir(struct inode *parent ) { struct ceph_vino vino ; u64 tmp ; struct inode *inode ; struct inode *tmp___0 ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___1 ; long tmp___2 ; long tmp___3 ; { tmp = ceph_ino(parent); vino.ino = tmp; vino.snap = 0xffffffffffffffffULL; tmp___0 = ceph_get_inode(parent->i_sb, vino); inode = tmp___0; tmp___1 = ceph_inode(inode); ci = tmp___1; tmp___2 = ldv__builtin_expect(((int )parent->i_mode & 61440) != 16384, 0L); if (tmp___2 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (148), "i" (12UL)); ldv_29785: ; goto ldv_29785; } else { } tmp___3 = IS_ERR((void const *)inode); if (tmp___3 != 0L) { return (inode); } else { } inode->i_mode = parent->i_mode; inode->i_uid = parent->i_uid; inode->i_gid = parent->i_gid; inode->i_op = & ceph_dir_iops; inode->i_fop = & ceph_dir_fops; ci->i_snap_caps = 1U; ci->i_rbytes = 0ULL; return (inode); } } struct inode_operations const ceph_file_iops = {0, 0, & ceph_permission, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & ceph_setattr, & ceph_getattr, & ceph_setxattr, & ceph_getxattr, & ceph_listxattr, & ceph_removexattr, 0, 0, 0}; static struct ceph_inode_frag *__get_or_create_frag(struct ceph_inode_info *ci , u32 f ) { struct rb_node **p ; struct rb_node *parent ; struct ceph_inode_frag *frag ; int c ; struct rb_node const *__mptr ; void *tmp ; struct ceph_inode_info *tmp___0 ; struct ceph_inode_info *tmp___1 ; void *tmp___2 ; struct _ddebug descriptor ; struct ceph_inode_info *tmp___3 ; struct ceph_inode_info *tmp___4 ; char const *tmp___5 ; long tmp___6 ; { parent = 0; p = & ci->i_fragtree.rb_node; goto ldv_29798; ldv_29797: parent = *p; __mptr = (struct rb_node const *)parent; frag = (struct ceph_inode_frag *)__mptr; c = ceph_frag_compare(f, frag->frag); if (c < 0) { p = & (*p)->rb_left; } else if (c > 0) { p = & (*p)->rb_right; } else { return (frag); } ldv_29798: ; if ((unsigned long )*p != (unsigned long )((struct rb_node *)0)) { goto ldv_29797; } else { } tmp = kmalloc(56UL, 80U); frag = (struct ceph_inode_frag *)tmp; if ((unsigned long )frag == (unsigned long )((struct ceph_inode_frag *)0)) { tmp___0 = ceph_inode(& ci->vfs_inode); tmp___1 = ceph_inode(& ci->vfs_inode); printk("\vceph: __get_or_create_frag ENOMEM on %p %llx.%llx frag %x\n", & ci->vfs_inode, tmp___1->i_vino.ino, tmp___0->i_vino.snap, f); tmp___2 = ERR_PTR(-12L); return ((struct ceph_inode_frag *)tmp___2); } else { } frag->frag = f; frag->split_by = 0; frag->mds = -1; frag->ndist = 0; rb_link_node(& frag->node, parent, p); rb_insert_color(& frag->node, & ci->i_fragtree); descriptor.modname = "ceph"; descriptor.function = "__get_or_create_frag"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : get_or_create_frag added %llx.%llx frag %x\n"; descriptor.lineno = 220U; descriptor.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___3 = ceph_inode(& ci->vfs_inode); tmp___4 = ceph_inode(& ci->vfs_inode); tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : get_or_create_frag added %llx.%llx frag %x\n", 3, (char *)" ", tmp___5, 220, tmp___4->i_vino.ino, tmp___3->i_vino.snap, f); } else { } return (frag); } } struct ceph_inode_frag *__ceph_find_frag(struct ceph_inode_info *ci , u32 f ) { struct rb_node *n ; struct ceph_inode_frag *frag ; struct rb_node const *__mptr ; int c ; int tmp ; { n = ci->i_fragtree.rb_node; goto ldv_29812; ldv_29811: __mptr = (struct rb_node const *)n; frag = (struct ceph_inode_frag *)__mptr; tmp = ceph_frag_compare(f, frag->frag); c = tmp; if (c < 0) { n = n->rb_left; } else if (c > 0) { n = n->rb_right; } else { return (frag); } ldv_29812: ; if ((unsigned long )n != (unsigned long )((struct rb_node *)0)) { goto ldv_29811; } else { } return (0); } } u32 ceph_choose_frag(struct ceph_inode_info *ci , u32 v , struct ceph_inode_frag *pfrag , int *found ) { u32 t ; __u32 tmp ; struct ceph_inode_frag *frag ; unsigned int nway ; unsigned int i ; u32 n ; int __ret_warn_on ; int tmp___0 ; long tmp___1 ; size_t __len ; void *__ret ; struct _ddebug descriptor ; char const *tmp___2 ; long tmp___3 ; int tmp___4 ; long tmp___5 ; struct _ddebug descriptor___0 ; char const *tmp___6 ; long tmp___7 ; { tmp = ceph_frag_make(0U, 0U); t = tmp; if ((unsigned long )found != (unsigned long )((int *)0)) { *found = 0; } else { } ldv_mutex_lock_19(& ci->i_fragtree_mutex); ldv_29837: tmp___0 = ceph_frag_contains_value(t, v); __ret_warn_on = tmp___0 == 0; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 264); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); frag = __ceph_find_frag(ci, t); if ((unsigned long )frag == (unsigned long )((struct ceph_inode_frag *)0)) { goto ldv_29827; } else { } if (frag->split_by == 0) { if ((unsigned long )pfrag != (unsigned long )((struct ceph_inode_frag *)0)) { __len = 56UL; if (__len > 63UL) { __ret = memcpy((void *)pfrag, (void const *)frag, __len); } else { __ret = memcpy((void *)pfrag, (void const *)frag, __len); } } else { } if ((unsigned long )found != (unsigned long )((int *)0)) { *found = 1; } else { } goto ldv_29827; } else { } nway = (unsigned int )(1 << frag->split_by); descriptor.modname = "ceph"; descriptor.function = "ceph_choose_frag"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : choose_frag(%x) %x splits by %d (%d ways)\n"; descriptor.lineno = 279U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : choose_frag(%x) %x splits by %d (%d ways)\n", 3, (char *)" ", tmp___2, 279, v, t, frag->split_by, nway); } else { } i = 0U; goto ldv_29835; ldv_29834: n = ceph_frag_make_child(t, frag->split_by, (int )i); tmp___4 = ceph_frag_contains_value(n, v); if (tmp___4 != 0) { t = n; goto ldv_29833; } else { } i = i + 1U; ldv_29835: ; if (i < nway) { goto ldv_29834; } else { } ldv_29833: tmp___5 = ldv__builtin_expect(i == nway, 0L); if (tmp___5 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (287), "i" (12UL)); ldv_29836: ; goto ldv_29836; } else { } goto ldv_29837; ldv_29827: descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_choose_frag"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : choose_frag(%x) = %x\n"; descriptor___0.lineno = 289U; descriptor___0.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : choose_frag(%x) = %x\n", 3, (char *)" ", tmp___6, 289, v, t); } else { } ldv_mutex_unlock_20(& ci->i_fragtree_mutex); return (t); } } static int ceph_fill_dirfrag(struct inode *inode , struct ceph_mds_reply_dirfrag *dirinfo ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_inode_frag *frag ; u32 id ; int mds ; int ndist ; int i ; int err ; struct _ddebug descriptor ; struct ceph_inode_info *tmp___0 ; struct ceph_inode_info *tmp___1 ; char const *tmp___2 ; long tmp___3 ; struct _ddebug descriptor___0 ; struct ceph_inode_info *tmp___4 ; struct ceph_inode_info *tmp___5 ; char const *tmp___6 ; long tmp___7 ; struct ceph_inode_info *tmp___8 ; struct ceph_inode_info *tmp___9 ; long tmp___10 ; u32 __min1 ; u32 __min2 ; struct _ddebug descriptor___1 ; struct ceph_inode_info *tmp___11 ; struct ceph_inode_info *tmp___12 ; char const *tmp___13 ; long tmp___14 ; { tmp = ceph_inode(inode); ci = tmp; id = dirinfo->frag; mds = (int )dirinfo->auth; ndist = (int )dirinfo->ndist; err = 0; ldv_mutex_lock_21(& ci->i_fragtree_mutex); if (ndist == 0) { frag = __ceph_find_frag(ci, id); if ((unsigned long )frag == (unsigned long )((struct ceph_inode_frag *)0)) { goto out; } else { } if (frag->split_by == 0) { descriptor.modname = "ceph"; descriptor.function = "ceph_fill_dirfrag"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : fill_dirfrag removed %llx.%llx frag %x (no ref)\n"; descriptor.lineno = 320U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___0 = ceph_inode(inode); tmp___1 = ceph_inode(inode); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : fill_dirfrag removed %llx.%llx frag %x (no ref)\n", 3, (char *)" ", tmp___2, 320, tmp___1->i_vino.ino, tmp___0->i_vino.snap, id); } else { } rb_erase(& frag->node, & ci->i_fragtree); kfree((void const *)frag); } else { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_fill_dirfrag"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : fill_dirfrag cleared %llx.%llx frag %x referral\n"; descriptor___0.lineno = 326U; descriptor___0.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___4 = ceph_inode(inode); tmp___5 = ceph_inode(inode); tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : fill_dirfrag cleared %llx.%llx frag %x referral\n", 3, (char *)" ", tmp___6, 326, tmp___5->i_vino.ino, tmp___4->i_vino.snap, id); } else { } frag->mds = -1; frag->ndist = 0; } goto out; } else { } frag = __get_or_create_frag(ci, id); tmp___10 = IS_ERR((void const *)frag); if (tmp___10 != 0L) { tmp___8 = ceph_inode(inode); tmp___9 = ceph_inode(inode); printk("\vceph: fill_dirfrag ENOMEM on mds ref %llx.%llx fg %x\n", tmp___9->i_vino.ino, tmp___8->i_vino.snap, dirinfo->frag); err = -12; goto out; } else { } frag->mds = mds; __min1 = (u32 )ndist; __min2 = 4U; frag->ndist = (int )(__min1 < __min2 ? __min1 : __min2); i = 0; goto ldv_29858; ldv_29857: frag->dist[i] = (int )dirinfo->dist[i]; i = i + 1; ldv_29858: ; if (frag->ndist > i) { goto ldv_29857; } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_fill_dirfrag"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : fill_dirfrag %llx.%llx frag %x ndist=%d\n"; descriptor___1.lineno = 350U; descriptor___1.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___11 = ceph_inode(inode); tmp___12 = ceph_inode(inode); tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : fill_dirfrag %llx.%llx frag %x ndist=%d\n", 3, (char *)" ", tmp___13, 350, tmp___12->i_vino.ino, tmp___11->i_vino.snap, frag->frag, frag->ndist); } else { } out: ldv_mutex_unlock_22(& ci->i_fragtree_mutex); return (err); } } struct inode *ceph_alloc_inode(struct super_block *sb ) { struct ceph_inode_info *ci ; int i ; void *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct lock_class_key __key ; struct rb_root __constr_expr_0 ; struct lock_class_key __key___0 ; struct rb_root __constr_expr_1 ; struct rb_root __constr_expr_2 ; struct lock_class_key __key___1 ; struct lock_class_key __key___2 ; struct lock_class_key __key___3 ; atomic_long_t __constr_expr_3 ; struct lock_class_key __key___4 ; atomic_long_t __constr_expr_4 ; struct lock_class_key __key___5 ; atomic_long_t __constr_expr_5 ; { tmp = kmem_cache_alloc(ceph_inode_cachep, 80U); ci = (struct ceph_inode_info *)tmp; if ((unsigned long )ci == (unsigned long )((struct ceph_inode_info *)0)) { return (0); } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_alloc_inode"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : alloc_inode %p\n"; descriptor.lineno = 370U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : alloc_inode %p\n", 3, (char *)" ", tmp___0, 370, & ci->vfs_inode); } else { } spinlock_check(& ci->i_ceph_lock); __raw_spin_lock_init(& ci->i_ceph_lock.ldv_5961.rlock, "&(&ci->i_ceph_lock)->rlock", & __key); ci->i_version = 0ULL; ci->i_time_warp_seq = 0U; ci->i_ceph_flags = 0U; ci->i_release_count = 0UL; ci->i_symlink = 0; memset((void *)(& ci->i_dir_layout), 0, 8UL); __constr_expr_0.rb_node = 0; ci->i_fragtree = __constr_expr_0; __mutex_init(& ci->i_fragtree_mutex, "&ci->i_fragtree_mutex", & __key___0); ci->i_xattrs.blob = 0; ci->i_xattrs.prealloc_blob = 0; ci->i_xattrs.dirty = 0; __constr_expr_1.rb_node = 0; ci->i_xattrs.index = __constr_expr_1; ci->i_xattrs.count = 0; ci->i_xattrs.names_size = 0; ci->i_xattrs.vals_size = 0; ci->i_xattrs.version = 0ULL; ci->i_xattrs.index_version = 0ULL; __constr_expr_2.rb_node = 0; ci->i_caps = __constr_expr_2; ci->i_auth_cap = 0; ci->i_dirty_caps = 0U; ci->i_flushing_caps = 0U; INIT_LIST_HEAD(& ci->i_dirty_item); INIT_LIST_HEAD(& ci->i_flushing_item); ci->i_cap_flush_seq = 0ULL; ci->i_cap_flush_last_tid = 0U; memset((void *)(& ci->i_cap_flush_tid), 0, 44UL); __init_waitqueue_head(& ci->i_cap_wq, "&ci->i_cap_wq", & __key___1); ci->i_hold_caps_min = 0UL; ci->i_hold_caps_max = 0UL; INIT_LIST_HEAD(& ci->i_cap_delay_list); ci->i_cap_exporting_mds = 0; ci->i_cap_exporting_mseq = 0U; ci->i_cap_exporting_issued = 0U; INIT_LIST_HEAD(& ci->i_cap_snaps); ci->i_head_snapc = 0; ci->i_snap_caps = 0U; i = 0; goto ldv_29875; ldv_29874: ci->i_nr_by_mode[i] = 0; i = i + 1; ldv_29875: ; if (i <= 7) { goto ldv_29874; } else { } ci->i_truncate_seq = 0U; ci->i_truncate_size = 0ULL; ci->i_truncate_pending = 0; ci->i_max_size = 0ULL; ci->i_reported_size = 0ULL; ci->i_wanted_max_size = 0ULL; ci->i_requested_max_size = 0ULL; ci->i_pin_ref = 0; ci->i_rd_ref = 0; ci->i_rdcache_ref = 0; ci->i_wr_ref = 0; ci->i_wb_ref = 0; ci->i_wrbuffer_ref = 0; ci->i_wrbuffer_ref_head = 0; ci->i_shared_gen = 0U; ci->i_rdcache_gen = 0U; ci->i_rdcache_revoking = 0U; INIT_LIST_HEAD(& ci->i_unsafe_writes); INIT_LIST_HEAD(& ci->i_unsafe_dirops); spinlock_check(& ci->i_unsafe_lock); __raw_spin_lock_init(& ci->i_unsafe_lock.ldv_5961.rlock, "&(&ci->i_unsafe_lock)->rlock", & __key___2); ci->i_snap_realm = 0; INIT_LIST_HEAD(& ci->i_snap_realm_item); INIT_LIST_HEAD(& ci->i_snap_flush_item); __init_work(& ci->i_wb_work, 0); __constr_expr_3.counter = 4195328L; ci->i_wb_work.data = __constr_expr_3; lockdep_init_map(& ci->i_wb_work.lockdep_map, "(&ci->i_wb_work)", & __key___3, 0); INIT_LIST_HEAD(& ci->i_wb_work.entry); ci->i_wb_work.func = & ceph_writeback_work; __init_work(& ci->i_pg_inv_work, 0); __constr_expr_4.counter = 4195328L; ci->i_pg_inv_work.data = __constr_expr_4; lockdep_init_map(& ci->i_pg_inv_work.lockdep_map, "(&ci->i_pg_inv_work)", & __key___4, 0); INIT_LIST_HEAD(& ci->i_pg_inv_work.entry); ci->i_pg_inv_work.func = & ceph_invalidate_work; __init_work(& ci->i_vmtruncate_work, 0); __constr_expr_5.counter = 4195328L; ci->i_vmtruncate_work.data = __constr_expr_5; lockdep_init_map(& ci->i_vmtruncate_work.lockdep_map, "(&ci->i_vmtruncate_work)", & __key___5, 0); INIT_LIST_HEAD(& ci->i_vmtruncate_work.entry); ci->i_vmtruncate_work.func = & ceph_vmtruncate_work; return (& ci->vfs_inode); } } static void ceph_i_callback(struct callback_head *head ) { struct inode *inode ; struct callback_head const *__mptr ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; { __mptr = (struct callback_head const *)head; inode = (struct inode *)__mptr + 0xfffffffffffffe28UL; tmp = ceph_inode(inode); ci = tmp; kmem_cache_free(ceph_inode_cachep, (void *)ci); return; } } void ceph_destroy_inode(struct inode *inode ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_inode_frag *frag ; struct rb_node *n ; struct _ddebug descriptor ; struct ceph_inode_info *tmp___0 ; struct ceph_inode_info *tmp___1 ; char const *tmp___2 ; long tmp___3 ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp___4 ; struct ceph_snap_realm *realm ; struct _ddebug descriptor___0 ; char const *tmp___5 ; long tmp___6 ; struct rb_node const *__mptr ; { tmp = ceph_inode(inode); ci = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_destroy_inode"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : destroy_inode %p ino %llx.%llx\n"; descriptor.lineno = 468U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___0 = ceph_inode(inode); tmp___1 = ceph_inode(inode); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : destroy_inode %p ino %llx.%llx\n", 3, (char *)" ", tmp___2, 468, inode, tmp___1->i_vino.ino, tmp___0->i_vino.snap); } else { } ceph_queue_caps_release(inode); if ((unsigned long )ci->i_snap_realm != (unsigned long )((struct ceph_snap_realm *)0)) { tmp___4 = ceph_sb_to_client(ci->vfs_inode.i_sb); mdsc = tmp___4->mdsc; realm = ci->i_snap_realm; descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_destroy_inode"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : dropping residual ref to snap realm %p\n"; descriptor___0.lineno = 481U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : dropping residual ref to snap realm %p\n", 3, (char *)" ", tmp___5, 481, realm); } else { } spin_lock(& realm->inodes_with_caps_lock); list_del_init(& ci->i_snap_realm_item); spin_unlock(& realm->inodes_with_caps_lock); ceph_put_snap_realm(mdsc, realm); } else { } kfree((void const *)ci->i_symlink); goto ldv_29905; ldv_29904: __mptr = (struct rb_node const *)n; frag = (struct ceph_inode_frag *)__mptr; rb_erase(n, & ci->i_fragtree); kfree((void const *)frag); ldv_29905: n = rb_first((struct rb_root const *)(& ci->i_fragtree)); if ((unsigned long )n != (unsigned long )((struct rb_node *)0)) { goto ldv_29904; } else { } __ceph_destroy_xattrs(ci); if ((unsigned long )ci->i_xattrs.blob != (unsigned long )((struct ceph_buffer *)0)) { ceph_buffer_put(ci->i_xattrs.blob); } else { } if ((unsigned long )ci->i_xattrs.prealloc_blob != (unsigned long )((struct ceph_buffer *)0)) { ceph_buffer_put(ci->i_xattrs.prealloc_blob); } else { } call_rcu_sched(& inode->ldv_13185.i_rcu, & ceph_i_callback); return; } } int ceph_fill_file_size(struct inode *inode , int issued , u32 truncate_seq , u64 truncate_size , u64 size ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int queue_trunc ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; int tmp___4 ; int tmp___5 ; __s32 tmp___6 ; struct _ddebug descriptor___1 ; char const *tmp___7 ; long tmp___8 ; __s32 tmp___9 ; { tmp = ceph_inode(inode); ci = tmp; queue_trunc = 0; tmp___6 = ceph_seq_cmp(truncate_seq, ci->i_truncate_seq); if (tmp___6 > 0 || (ci->i_truncate_seq == truncate_seq && (unsigned long long )inode->i_size < size)) { descriptor.modname = "ceph"; descriptor.function = "ceph_fill_file_size"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : size %lld -> %llu\n"; descriptor.lineno = 521U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : size %lld -> %llu\n", 3, (char *)" ", tmp___0, 521, inode->i_size, size); } else { } inode->i_size = (loff_t )size; inode->i_blocks = (blkcnt_t )((size + 511ULL) >> 9); ci->i_reported_size = size; if (ci->i_truncate_seq != truncate_seq) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_fill_file_size"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : truncate_seq %u -> %u\n"; descriptor___0.lineno = 527U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : truncate_seq %u -> %u\n", 3, (char *)" ", tmp___2, 527, ci->i_truncate_seq, truncate_seq); } else { } ci->i_truncate_seq = truncate_seq; if ((issued & 48640) != 0) { ci->i_truncate_pending = ci->i_truncate_pending + 1; queue_trunc = 1; } else { tmp___4 = mapping_mapped(inode->i_mapping); if (tmp___4 != 0) { ci->i_truncate_pending = ci->i_truncate_pending + 1; queue_trunc = 1; } else { tmp___5 = __ceph_caps_file_wanted(ci); if (tmp___5 != 0) { ci->i_truncate_pending = ci->i_truncate_pending + 1; queue_trunc = 1; } else { } } } } else { } } else { } tmp___9 = ceph_seq_cmp(truncate_seq, ci->i_truncate_seq); if (tmp___9 >= 0 && ci->i_truncate_size != truncate_size) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_fill_file_size"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : truncate_size %lld -> %llu\n"; descriptor___1.lineno = 549U; descriptor___1.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : truncate_size %lld -> %llu\n", 3, (char *)" ", tmp___7, 549, ci->i_truncate_size, truncate_size); } else { } ci->i_truncate_size = truncate_size; } else { } return (queue_trunc); } } void ceph_fill_file_time(struct inode *inode , int issued , u64 time_warp_seq , struct timespec *ctime , struct timespec *mtime , struct timespec *atime ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int warn ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; int tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; int tmp___7 ; struct _ddebug descriptor___2 ; char const *tmp___8 ; long tmp___9 ; int tmp___10 ; __s32 tmp___11 ; __s32 tmp___12 ; struct _ddebug descriptor___3 ; char const *tmp___13 ; long tmp___14 ; { tmp = ceph_inode(inode); ci = tmp; warn = 0; if ((issued & 12936) != 0) { tmp___2 = timespec_compare((struct timespec const *)ctime, (struct timespec const *)(& inode->i_ctime)); if (tmp___2 > 0) { descriptor.modname = "ceph"; descriptor.function = "ceph_fill_file_time"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ctime %ld.%09ld -> %ld.%09ld inc w/ cap\n"; descriptor.lineno = 570U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ctime %ld.%09ld -> %ld.%09ld inc w/ cap\n", 3, (char *)" ", tmp___0, 570, inode->i_ctime.tv_sec, inode->i_ctime.tv_nsec, ctime->tv_sec, ctime->tv_nsec); } else { } inode->i_ctime = *ctime; } else { } tmp___11 = ceph_seq_cmp((__u32 )time_warp_seq, ci->i_time_warp_seq); if (tmp___11 > 0) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_fill_file_time"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mtime %ld.%09ld -> %ld.%09ld tw %d -> %d\n"; descriptor___0.lineno = 579U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mtime %ld.%09ld -> %ld.%09ld tw %d -> %d\n", 3, (char *)" ", tmp___3, 579, inode->i_mtime.tv_sec, inode->i_mtime.tv_nsec, mtime->tv_sec, mtime->tv_nsec, ci->i_time_warp_seq, (int )time_warp_seq); } else { } inode->i_mtime = *mtime; inode->i_atime = *atime; ci->i_time_warp_seq = (u32 )time_warp_seq; } else if ((u64 )ci->i_time_warp_seq == time_warp_seq) { tmp___7 = timespec_compare((struct timespec const *)mtime, (struct timespec const *)(& inode->i_mtime)); if (tmp___7 > 0) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_fill_file_time"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : mtime %ld.%09ld -> %ld.%09ld inc\n"; descriptor___1.lineno = 590U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : mtime %ld.%09ld -> %ld.%09ld inc\n", 3, (char *)" ", tmp___5, 590, inode->i_mtime.tv_sec, inode->i_mtime.tv_nsec, mtime->tv_sec, mtime->tv_nsec); } else { } inode->i_mtime = *mtime; } else { } tmp___10 = timespec_compare((struct timespec const *)atime, (struct timespec const *)(& inode->i_atime)); if (tmp___10 > 0) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_fill_file_time"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : atime %ld.%09ld -> %ld.%09ld inc\n"; descriptor___2.lineno = 597U; descriptor___2.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : atime %ld.%09ld -> %ld.%09ld inc\n", 3, (char *)" ", tmp___8, 597, inode->i_atime.tv_sec, inode->i_atime.tv_nsec, atime->tv_sec, atime->tv_nsec); } else { } inode->i_atime = *atime; } else { } } else if ((issued & 512) != 0) { } else { warn = 1; } } else { tmp___12 = ceph_seq_cmp((__u32 )time_warp_seq, ci->i_time_warp_seq); if (tmp___12 >= 0) { inode->i_ctime = *ctime; inode->i_mtime = *mtime; inode->i_atime = *atime; ci->i_time_warp_seq = (u32 )time_warp_seq; } else { warn = 1; } } if (warn != 0) { descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_fill_file_time"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : %p mds time_warp_seq %llu < %u\n"; descriptor___3.lineno = 618U; descriptor___3.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : %p mds time_warp_seq %llu < %u\n", 3, (char *)" ", tmp___13, 618, inode, time_warp_seq, ci->i_time_warp_seq); } else { } } else { } return; } } static int fill_inode(struct inode *inode , struct ceph_mds_reply_info_in *iinfo , struct ceph_mds_reply_dirfrag *dirinfo , struct ceph_mds_session *session , unsigned long ttl_from , int cap_fmode , struct ceph_cap_reservation *caps_reservation ) { struct ceph_mds_reply_inode *info ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int i ; int issued ; int implemented ; int updating_inode ; struct timespec mtime ; struct timespec atime ; struct timespec ctime ; u32 nsplits ; struct ceph_buffer *xattr_blob ; int err ; int queue_trunc ; struct _ddebug descriptor ; struct ceph_inode_info *tmp___0 ; struct ceph_inode_info *tmp___1 ; char const *tmp___2 ; long tmp___3 ; int tmp___4 ; struct _ddebug descriptor___0 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___1 ; char const *tmp___7 ; long tmp___8 ; int tmp___9 ; size_t __len ; void *__ret ; struct ceph_fs_client *tmp___10 ; u32 symlen ; char *sym ; int __ret_warn_on ; long tmp___11 ; long tmp___12 ; struct ceph_inode_info *tmp___13 ; struct ceph_inode_info *tmp___14 ; u32 id ; struct ceph_inode_frag *frag ; struct ceph_inode_frag *tmp___15 ; long tmp___16 ; struct _ddebug descriptor___2 ; char const *tmp___17 ; long tmp___18 ; struct _ddebug descriptor___3 ; char const *tmp___19 ; char const *tmp___20 ; long tmp___21 ; u64 tmp___22 ; struct ceph_inode_info *tmp___23 ; struct ceph_inode_info *tmp___24 ; struct _ddebug descriptor___4 ; char const *tmp___25 ; long tmp___26 ; u64 tmp___27 ; bool tmp___28 ; int tmp___29 ; { info = iinfo->in; tmp = ceph_inode(inode); ci = tmp; issued = 0; updating_inode = 0; xattr_blob = 0; err = 0; queue_trunc = 0; descriptor.modname = "ceph"; descriptor.function = "fill_inode"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : fill_inode %p ino %llx.%llx v %llu had %llu\n"; descriptor.lineno = 645U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___0 = ceph_inode(inode); tmp___1 = ceph_inode(inode); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : fill_inode %p ino %llx.%llx v %llu had %llu\n", 3, (char *)" ", tmp___2, 645, inode, tmp___1->i_vino.ino, tmp___0->i_vino.snap, info->version, ci->i_version); } else { } if (iinfo->xattr_len > 4U) { xattr_blob = ceph_buffer_new((size_t )iinfo->xattr_len, 80U); if ((unsigned long )xattr_blob == (unsigned long )((struct ceph_buffer *)0)) { printk("\vceph: fill_inode ENOMEM xattr blob %d bytes\n", iinfo->xattr_len); } else { } } else { } spin_lock(& ci->i_ceph_lock); if (info->version != 0ULL && (ci->i_version & 0xfffffffffffffffeULL) >= info->version) { goto no_change; } else { } updating_inode = 1; issued = __ceph_caps_issued(ci, & implemented); tmp___4 = __ceph_caps_dirty(ci); issued = (tmp___4 | implemented) | issued; ci->i_version = info->version; inode->i_version = inode->i_version + 1ULL; inode->i_rdev = info->rdev; if ((issued & 8) == 0) { inode->i_mode = (umode_t )info->mode; inode->i_uid = info->uid; inode->i_gid = info->gid; descriptor___0.modname = "ceph"; descriptor___0.function = "fill_inode"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : %p mode 0%o uid.gid %d.%d\n"; descriptor___0.lineno = 690U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : %p mode 0%o uid.gid %d.%d\n", 3, (char *)" ", tmp___5, 690, inode, (int )inode->i_mode, inode->i_uid, inode->i_gid); } else { } } else { } if ((issued & 32) == 0) { set_nlink(inode, info->nlink); } else { } ceph_decode_timespec(& atime, (struct ceph_timespec const *)(& info->atime)); ceph_decode_timespec(& mtime, (struct ceph_timespec const *)(& info->mtime)); ceph_decode_timespec(& ctime, (struct ceph_timespec const *)(& info->ctime)); queue_trunc = ceph_fill_file_size(inode, issued, info->truncate_seq, info->truncate_size, info->size); ceph_fill_file_time(inode, issued, (u64 )info->time_warp_seq, & ctime, & mtime, & atime); if ((int )info->cap.flags & 1 && ci->i_max_size != info->max_size) { descriptor___1.modname = "ceph"; descriptor___1.function = "fill_inode"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : max_size %lld -> %llu\n"; descriptor___1.lineno = 712U; descriptor___1.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : max_size %lld -> %llu\n", 3, (char *)" ", tmp___7, 712, ci->i_max_size, info->max_size); } else { } ci->i_max_size = info->max_size; } else { } ci->i_layout = info->layout; tmp___9 = fls((int )info->layout.fl_stripe_unit); inode->i_blkbits = (unsigned int )(tmp___9 + -1); if ((issued & 128) == 0 && info->xattr_version > ci->i_xattrs.version) { if ((unsigned long )ci->i_xattrs.blob != (unsigned long )((struct ceph_buffer *)0)) { ceph_buffer_put(ci->i_xattrs.blob); } else { } ci->i_xattrs.blob = xattr_blob; if ((unsigned long )xattr_blob != (unsigned long )((struct ceph_buffer *)0)) { __len = (size_t )iinfo->xattr_len; __ret = memcpy((ci->i_xattrs.blob)->vec.iov_base, (void const *)iinfo->xattr_data, __len); } else { } ci->i_xattrs.version = info->xattr_version; xattr_blob = 0; } else { } (inode->i_mapping)->a_ops = & ceph_aops; tmp___10 = ceph_sb_to_client(inode->i_sb); (inode->i_mapping)->backing_dev_info = & tmp___10->backing_dev_info; switch ((int )inode->i_mode & 61440) { case 4096: ; case 24576: ; case 8192: ; case 49152: init_special_inode(inode, (int )inode->i_mode, inode->i_rdev); inode->i_op = & ceph_file_iops; goto ldv_29970; case 32768: inode->i_op = & ceph_file_iops; inode->i_fop = & ceph_file_fops; goto ldv_29970; case 40960: inode->i_op = & ceph_symlink_iops; if ((unsigned long )ci->i_symlink == (unsigned long )((char *)0)) { symlen = iinfo->symlink_len; spin_unlock(& ci->i_ceph_lock); err = -22; __ret_warn_on = (loff_t )symlen != inode->i_size; tmp___11 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___11 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 758); } else { } tmp___12 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___12 != 0L) { goto out; } else { } err = -12; sym = kstrndup((char const *)iinfo->symlink, (size_t )symlen, 80U); if ((unsigned long )sym == (unsigned long )((char *)0)) { goto out; } else { } spin_lock(& ci->i_ceph_lock); if ((unsigned long )ci->i_symlink == (unsigned long )((char *)0)) { ci->i_symlink = sym; } else { kfree((void const *)sym); } } else { } goto ldv_29970; case 16384: inode->i_op = & ceph_dir_iops; inode->i_fop = & ceph_dir_fops; ci->i_dir_layout = iinfo->dir_layout; ci->i_files = info->files; ci->i_subdirs = info->subdirs; ci->i_rbytes = info->rbytes; ci->i_rfiles = info->rfiles; ci->i_rsubdirs = info->rsubdirs; ceph_decode_timespec(& ci->i_rctime, (struct ceph_timespec const *)(& info->rctime)); goto ldv_29970; default: tmp___13 = ceph_inode(inode); tmp___14 = ceph_inode(inode); printk("\vceph: fill_inode %llx.%llx BAD mode 0%o\n", tmp___14->i_vino.ino, tmp___13->i_vino.snap, (int )inode->i_mode); } ldv_29970: ; no_change: spin_unlock(& ci->i_ceph_lock); if (queue_trunc != 0) { ceph_queue_vmtruncate(inode); } else { } nsplits = info->fragtree.nsplits; ldv_mutex_lock_23(& ci->i_fragtree_mutex); i = 0; goto ldv_29985; ldv_29984: id = info->fragtree.splits[i].frag; tmp___15 = __get_or_create_frag(ci, id); frag = tmp___15; tmp___16 = IS_ERR((void const *)frag); if (tmp___16 != 0L) { goto ldv_29982; } else { } frag->split_by = (int )info->fragtree.splits[i].by; descriptor___2.modname = "ceph"; descriptor___2.function = "fill_inode"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : frag %x split by %d\n"; descriptor___2.lineno = 809U; descriptor___2.flags = 0U; tmp___18 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___18 != 0L) { tmp___17 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : frag %x split by %d\n", 3, (char *)" ", tmp___17, 809, frag->frag, frag->split_by); } else { } ldv_29982: i = i + 1; ldv_29985: ; if ((u32 )i < nsplits) { goto ldv_29984; } else { } ldv_mutex_unlock_24(& ci->i_fragtree_mutex); if (info->cap.caps != 0U) { tmp___22 = ceph_snap(inode); if (tmp___22 == 0xfffffffffffffffeULL) { ceph_add_cap(inode, session, info->cap.cap_id, cap_fmode, info->cap.caps, info->cap.wanted, info->cap.seq, info->cap.mseq, info->cap.realm, (int )info->cap.flags, caps_reservation); } else { spin_lock(& ci->i_ceph_lock); descriptor___3.modname = "ceph"; descriptor___3.function = "fill_inode"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : %p got snap_caps %s\n"; descriptor___3.lineno = 829U; descriptor___3.flags = 0U; tmp___21 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___21 != 0L) { tmp___19 = ceph_cap_string((int )info->cap.caps); tmp___20 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : %p got snap_caps %s\n", 3, (char *)" ", tmp___20, 829, inode, tmp___19); } else { } ci->i_snap_caps = ci->i_snap_caps | info->cap.caps; if (cap_fmode >= 0) { __ceph_get_fmode(ci, cap_fmode); } else { } spin_unlock(& ci->i_ceph_lock); } } else if (cap_fmode >= 0) { tmp___23 = ceph_inode(inode); tmp___24 = ceph_inode(inode); printk("\fceph: mds issued no caps on %llx.%llx\n", tmp___24->i_vino.ino, tmp___23->i_vino.snap); __ceph_get_fmode(ci, cap_fmode); } else { } if (((((int )inode->i_mode & 61440) == 16384 && updating_inode != 0) && ci->i_files == 0ULL) && ci->i_subdirs == 0ULL) { tmp___27 = ceph_snap(inode); if (tmp___27 == 0xfffffffffffffffeULL) { if ((info->cap.caps & 256U) != 0U) { if ((issued & 512) == 0) { tmp___28 = ceph_dir_test_complete(inode); if (tmp___28) { tmp___29 = 0; } else { tmp___29 = 1; } if (tmp___29) { descriptor___4.modname = "ceph"; descriptor___4.function = "fill_inode"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : marking %p complete (empty)\n"; descriptor___4.lineno = 849U; descriptor___4.flags = 0U; tmp___26 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___26 != 0L) { tmp___25 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : marking %p complete (empty)\n", 3, (char *)" ", tmp___25, 849, inode); } else { } ceph_dir_set_complete(inode); ci->i_max_offset = 2ULL; } else { } } else { } } else { } } else { } } else { } if ((unsigned long )dirinfo != (unsigned long )((struct ceph_mds_reply_dirfrag *)0)) { ceph_fill_dirfrag(inode, dirinfo); } else { } err = 0; out: ; if ((unsigned long )xattr_blob != (unsigned long )((struct ceph_buffer *)0)) { ceph_buffer_put(xattr_blob); } else { } return (err); } } static void update_dentry_lease(struct dentry *dentry , struct ceph_mds_reply_lease *lease , struct ceph_mds_session *session , unsigned long from_time ) { struct ceph_dentry_info *di ; struct ceph_dentry_info *tmp ; unsigned long duration ; unsigned long ttl ; unsigned long half_ttl ; struct inode *dir ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct ceph_inode_info *tmp___2 ; { tmp = ceph_dentry(dentry); di = tmp; duration = (unsigned long )lease->duration_ms; ttl = (duration * 250UL) / 1000UL + from_time; half_ttl = (duration * 250UL) / 2000UL + from_time; if ((unsigned long )dentry->d_op != (unsigned long )(& ceph_dentry_ops)) { return; } else { } spin_lock(& dentry->d_lock); descriptor.modname = "ceph"; descriptor.function = "update_dentry_lease"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : update_dentry_lease %p duration %lu ms ttl %lu\n"; descriptor.lineno = 886U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : update_dentry_lease %p duration %lu ms ttl %lu\n", 3, (char *)" ", tmp___0, 886, dentry, duration, ttl); } else { } dir = (dentry->d_parent)->d_inode; tmp___2 = ceph_inode(dir); di->lease_shared_gen = tmp___2->i_shared_gen; if (duration == 0UL) { goto out_unlock; } else { } if (di->lease_gen == session->s_cap_gen && (long )ttl - (long )dentry->d_time < 0L) { goto out_unlock; } else { } if ((unsigned long )di->lease_session != (unsigned long )((struct ceph_mds_session *)0) && (unsigned long )di->lease_session != (unsigned long )session) { goto out_unlock; } else { } ceph_dentry_lru_touch(dentry); if ((unsigned long )di->lease_session == (unsigned long )((struct ceph_mds_session *)0)) { di->lease_session = ceph_get_mds_session(session); } else { } di->lease_gen = session->s_cap_gen; di->lease_seq = lease->seq; di->lease_renew_after = half_ttl; di->lease_renew_from = 0UL; dentry->d_time = ttl; out_unlock: spin_unlock(& dentry->d_lock); return; } } static void ceph_set_dentry_offset(struct dentry *dn ) { struct dentry *dir ; struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_dentry_info *di ; long tmp ; bool tmp___0 ; int tmp___1 ; struct ceph_inode_info *tmp___2 ; u64 tmp___3 ; raw_spinlock_t *tmp___4 ; struct _ddebug descriptor ; char const *tmp___5 ; long tmp___6 ; { dir = dn->d_parent; inode = dir->d_inode; tmp = ldv__builtin_expect((unsigned long )inode == (unsigned long )((struct inode *)0), 0L); if (tmp != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (929), "i" (12UL)); ldv_30016: ; goto ldv_30016; } else { } ci = ceph_inode(inode); di = ceph_dentry(dn); spin_lock(& ci->i_ceph_lock); tmp___0 = ceph_dir_test_complete(inode); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { spin_unlock(& ci->i_ceph_lock); return; } else { } tmp___2 = ceph_inode(inode); tmp___3 = tmp___2->i_max_offset; tmp___2->i_max_offset = tmp___2->i_max_offset + 1ULL; di->offset = tmp___3; spin_unlock(& ci->i_ceph_lock); spin_lock(& dir->d_lock); tmp___4 = spinlock_check(& dn->d_lock); _raw_spin_lock_nested(tmp___4, 1); list_move(& dn->d_u.d_child, & dir->d_subdirs); descriptor.modname = "ceph"; descriptor.function = "ceph_set_dentry_offset"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : set_dentry_offset %p %lld (%p %p)\n"; descriptor.lineno = 946U; descriptor.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : set_dentry_offset %p %lld (%p %p)\n", 3, (char *)" ", tmp___5, 946, dn, di->offset, dn->d_u.d_child.prev, dn->d_u.d_child.next); } else { } spin_unlock(& dn->d_lock); spin_unlock(& dir->d_lock); return; } } static struct dentry *splice_dentry(struct dentry *dn , struct inode *in , bool *prehash , bool set_offset ) { struct dentry *realdn ; long tmp ; int tmp___0 ; struct ceph_inode_info *tmp___1 ; struct ceph_inode_info *tmp___2 ; long tmp___3 ; struct _ddebug descriptor ; struct ceph_inode_info *tmp___4 ; struct ceph_inode_info *tmp___5 ; char const *tmp___6 ; long tmp___7 ; struct ceph_dentry_info *tmp___8 ; long tmp___9 ; struct _ddebug descriptor___0 ; struct ceph_inode_info *tmp___10 ; struct ceph_inode_info *tmp___11 ; char const *tmp___12 ; long tmp___13 ; long tmp___14 ; int tmp___15 ; { tmp = ldv__builtin_expect((unsigned long )dn->d_inode != (unsigned long )((struct inode *)0), 0L); if (tmp != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (964), "i" (12UL)); ldv_30026: ; goto ldv_30026; } else { } tmp___0 = d_unhashed(dn); if (tmp___0 == 0) { d_drop(dn); } else { } realdn = d_materialise_unique(dn, in); tmp___14 = IS_ERR((void const *)realdn); if (tmp___14 != 0L) { tmp___1 = ceph_inode(in); tmp___2 = ceph_inode(in); tmp___3 = PTR_ERR((void const *)realdn); printk("\vceph: splice_dentry error %ld %p inode %p ino %llx.%llx\n", tmp___3, dn, in, tmp___2->i_vino.ino, tmp___1->i_vino.snap); if ((unsigned long )prehash != (unsigned long )((bool *)0)) { *prehash = 0; } else { } dn = realdn; goto out; } else if ((unsigned long )realdn != (unsigned long )((struct dentry *)0)) { descriptor.modname = "ceph"; descriptor.function = "splice_dentry"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : dn %p (%d) spliced with %p (%d) inode %p ino %llx.%llx\n"; descriptor.lineno = 982U; descriptor.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___4 = ceph_inode(realdn->d_inode); tmp___5 = ceph_inode(realdn->d_inode); tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : dn %p (%d) spliced with %p (%d) inode %p ino %llx.%llx\n", 3, (char *)" ", tmp___6, 982, dn, dn->d_count, realdn, realdn->d_count, realdn->d_inode, tmp___5->i_vino.ino, tmp___4->i_vino.snap); } else { } dput(dn); dn = realdn; } else { tmp___8 = ceph_dentry(dn); tmp___9 = ldv__builtin_expect((unsigned long )tmp___8 == (unsigned long )((struct ceph_dentry_info *)0), 0L); if (tmp___9 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (986), "i" (12UL)); ldv_30030: ; goto ldv_30030; } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "splice_dentry"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : dn %p attached to %p ino %llx.%llx\n"; descriptor___0.lineno = 988U; descriptor___0.flags = 0U; tmp___13 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___13 != 0L) { tmp___10 = ceph_inode(dn->d_inode); tmp___11 = ceph_inode(dn->d_inode); tmp___12 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : dn %p attached to %p ino %llx.%llx\n", 3, (char *)" ", tmp___12, 988, dn, dn->d_inode, tmp___11->i_vino.ino, tmp___10->i_vino.snap); } else { } } if ((unsigned long )prehash == (unsigned long )((bool *)0) || (int )*prehash) { tmp___15 = d_unhashed(dn); if (tmp___15 != 0) { d_rehash(dn); } else { } } else { } if ((int )set_offset) { ceph_set_dentry_offset(dn); } else { } out: ; return (dn); } } int ceph_fill_trace(struct super_block *sb , struct ceph_mds_request *req , struct ceph_mds_session *session ) { struct ceph_mds_reply_info_parsed *rinfo ; struct inode *in ; struct ceph_mds_reply_inode *ininfo ; struct ceph_vino vino ; struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; int i ; int err ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; struct inode *dir ; bool __warned ; int __ret_warn_once ; int __ret_warn_on ; long tmp___4 ; long tmp___5 ; long tmp___6 ; struct inode *dir___0 ; struct dentry *dn ; bool have_dir_cap ; bool have_lease ; long tmp___7 ; long tmp___8 ; long tmp___9 ; u64 tmp___10 ; long tmp___11 ; u64 tmp___12 ; long tmp___13 ; struct _ddebug descriptor___1 ; char const *tmp___14 ; long tmp___15 ; struct _ddebug descriptor___2 ; char const *tmp___16 ; long tmp___17 ; struct _ddebug descriptor___3 ; char const *tmp___18 ; long tmp___19 ; struct _ddebug descriptor___4 ; char const *tmp___20 ; long tmp___21 ; struct _ddebug descriptor___5 ; struct ceph_dentry_info *tmp___22 ; char const *tmp___23 ; long tmp___24 ; struct _ddebug descriptor___6 ; char const *tmp___25 ; long tmp___26 ; struct _ddebug descriptor___7 ; char const *tmp___27 ; long tmp___28 ; struct _ddebug descriptor___8 ; char const *tmp___29 ; long tmp___30 ; int tmp___31 ; long tmp___32 ; long tmp___33 ; long tmp___34 ; long tmp___35 ; struct _ddebug descriptor___9 ; u64 tmp___36 ; u64 tmp___37 ; char const *tmp___38 ; long tmp___39 ; u64 tmp___40 ; u64 tmp___41 ; struct _ddebug descriptor___10 ; char const *tmp___42 ; long tmp___43 ; struct dentry *dn___0 ; long tmp___44 ; long tmp___45 ; u64 tmp___46 ; long tmp___47 ; long tmp___48 ; long tmp___49 ; struct _ddebug descriptor___11 ; char const *tmp___50 ; long tmp___51 ; long tmp___52 ; long tmp___53 ; int tmp___54 ; long tmp___55 ; long tmp___56 ; u64 tmp___57 ; u64 tmp___58 ; struct ceph_inode_info *tmp___59 ; struct ceph_inode_info *tmp___60 ; struct _ddebug descriptor___12 ; char const *tmp___61 ; long tmp___62 ; { rinfo = & req->r_reply_info; in = 0; tmp = ceph_sb_to_client(sb); fsc = tmp; i = 0; err = 0; descriptor.modname = "ceph"; descriptor.function = "ceph_fill_trace"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : fill_trace %p is_dentry %d is_target %d\n"; descriptor.lineno = 1021U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : fill_trace %p is_dentry %d is_target %d\n", 3, (char *)" ", tmp___0, 1021, req, (int )(rinfo->head)->is_dentry, (int )(rinfo->head)->is_target); } else { } if ((unsigned int )(rinfo->head)->is_target == 0U && (unsigned int )(rinfo->head)->is_dentry == 0U) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_fill_trace"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : fill_trace reply is empty!\n"; descriptor___0.lineno = 1058U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : fill_trace reply is empty!\n", 3, (char *)" ", tmp___2, 1058); } else { } if ((rinfo->head)->result == 0U && (unsigned long )req->r_locked_dir != (unsigned long )((struct inode *)0)) { ceph_invalidate_dir_request(req); } else { } return (0); } else { } if ((unsigned int )(rinfo->head)->is_dentry != 0U) { dir = req->r_locked_dir; if ((unsigned long )dir != (unsigned long )((struct inode *)0)) { err = fill_inode(dir, & rinfo->diri, rinfo->dirfrag, session, req->r_request_started, -1, & req->r_caps_reservation); if (err < 0) { return (err); } else { } } else { __ret_warn_once = 1; tmp___6 = ldv__builtin_expect(__ret_warn_once != 0, 0L); if (tmp___6 != 0L) { __ret_warn_on = ! __warned; tmp___4 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 1074); } else { } tmp___5 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___5 != 0L) { __warned = 1; } else { } } else { } ldv__builtin_expect(__ret_warn_once != 0, 0L); } } else { } if (((unsigned int )(rinfo->head)->is_dentry != 0U && ! req->r_aborted) && (unsigned long )req->r_locked_dir != (unsigned long )((struct inode *)0)) { if ((unsigned int )(rinfo->head)->is_target != 0U) { goto _L___1; } else { tmp___54 = strncmp((char const *)(req->r_dentry)->d_name.name, (char const *)(fsc->mount_options)->snapdir_name, (__kernel_size_t )(req->r_dentry)->d_name.ldv_11489.ldv_11487.len); if (tmp___54 != 0) { _L___1: /* CIL Label */ dir___0 = req->r_locked_dir; dn = req->r_dentry; tmp___7 = ldv__builtin_expect((unsigned long )dn == (unsigned long )((struct dentry *)0), 0L); if (tmp___7 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (1096), "i" (12UL)); ldv_30057: ; goto ldv_30057; } else { } tmp___8 = ldv__builtin_expect((unsigned long )dir___0 == (unsigned long )((struct inode *)0), 0L); if (tmp___8 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (1097), "i" (12UL)); ldv_30058: ; goto ldv_30058; } else { } tmp___9 = ldv__builtin_expect((unsigned long )(dn->d_parent)->d_inode != (unsigned long )dir___0, 0L); if (tmp___9 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (1098), "i" (12UL)); ldv_30059: ; goto ldv_30059; } else { } tmp___10 = ceph_ino(dir___0); tmp___11 = ldv__builtin_expect(tmp___10 != (rinfo->diri.in)->ino, 0L); if (tmp___11 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (1100), "i" (12UL)); ldv_30060: ; goto ldv_30060; } else { } tmp___12 = ceph_snap(dir___0); tmp___13 = ldv__builtin_expect(tmp___12 != (rinfo->diri.in)->snapid, 0L); if (tmp___13 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (1102), "i" (12UL)); ldv_30061: ; goto ldv_30061; } else { } have_dir_cap = ((rinfo->diri.in)->cap.caps & 256U) != 0U; have_lease = (bool )((int )have_dir_cap || (rinfo->dlease)->duration_ms != 0U); if (! have_lease) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_fill_trace"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : fill_trace no dentry lease or dir cap\n"; descriptor___1.lineno = 1113U; descriptor___1.flags = 0U; tmp___15 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___15 != 0L) { tmp___14 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : fill_trace no dentry lease or dir cap\n", 3, (char *)" ", tmp___14, 1113); } else { } } else { } if ((unsigned long )req->r_old_dentry != (unsigned long )((struct dentry *)0) && req->r_op == 4612) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_fill_trace"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : src %p \'%.*s\' dst %p \'%.*s\'\n"; descriptor___2.lineno = 1121U; descriptor___2.flags = 0U; tmp___17 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___17 != 0L) { tmp___16 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : src %p \'%.*s\' dst %p \'%.*s\'\n", 3, (char *)" ", tmp___16, 1121, req->r_old_dentry, (req->r_old_dentry)->d_name.ldv_11489.ldv_11487.len, (req->r_old_dentry)->d_name.name, dn, dn->d_name.ldv_11489.ldv_11487.len, dn->d_name.name); } else { } descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_fill_trace"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : fill_trace doing d_move %p -> %p\n"; descriptor___3.lineno = 1123U; descriptor___3.flags = 0U; tmp___19 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___19 != 0L) { tmp___18 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : fill_trace doing d_move %p -> %p\n", 3, (char *)" ", tmp___18, 1123, req->r_old_dentry, dn); } else { } d_move(req->r_old_dentry, dn); descriptor___4.modname = "ceph"; descriptor___4.function = "ceph_fill_trace"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : src %p \'%.*s\' dst %p \'%.*s\'\n"; descriptor___4.lineno = 1130U; descriptor___4.flags = 0U; tmp___21 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___21 != 0L) { tmp___20 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : src %p \'%.*s\' dst %p \'%.*s\'\n", 3, (char *)" ", tmp___20, 1130, req->r_old_dentry, (req->r_old_dentry)->d_name.ldv_11489.ldv_11487.len, (req->r_old_dentry)->d_name.name, dn, dn->d_name.ldv_11489.ldv_11487.len, dn->d_name.name); } else { } ceph_invalidate_dentry_lease(dn); ceph_set_dentry_offset(req->r_old_dentry); descriptor___5.modname = "ceph"; descriptor___5.function = "ceph_fill_trace"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : dn %p gets new offset %lld\n"; descriptor___5.lineno = 1144U; descriptor___5.flags = 0U; tmp___24 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___24 != 0L) { tmp___22 = ceph_dentry(req->r_old_dentry); tmp___23 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : dn %p gets new offset %lld\n", 3, (char *)" ", tmp___23, 1144, req->r_old_dentry, tmp___22->offset); } else { } dn = req->r_old_dentry; in = dn->d_inode; } else { } if ((unsigned int )(rinfo->head)->is_target == 0U) { descriptor___6.modname = "ceph"; descriptor___6.function = "ceph_fill_trace"; descriptor___6.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___6.format = "%.*s %12.12s:%-4d : fill_trace null dentry\n"; descriptor___6.lineno = 1152U; descriptor___6.flags = 0U; tmp___26 = ldv__builtin_expect((long )descriptor___6.flags & 1L, 0L); if (tmp___26 != 0L) { tmp___25 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___6, "ceph: %.*s %12.12s:%-4d : fill_trace null dentry\n", 3, (char *)" ", tmp___25, 1152); } else { } if ((unsigned long )dn->d_inode != (unsigned long )((struct inode *)0)) { descriptor___7.modname = "ceph"; descriptor___7.function = "ceph_fill_trace"; descriptor___7.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___7.format = "%.*s %12.12s:%-4d : d_delete %p\n"; descriptor___7.lineno = 1154U; descriptor___7.flags = 0U; tmp___28 = ldv__builtin_expect((long )descriptor___7.flags & 1L, 0L); if (tmp___28 != 0L) { tmp___27 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___7, "ceph: %.*s %12.12s:%-4d : d_delete %p\n", 3, (char *)" ", tmp___27, 1154, dn); } else { } d_delete(dn); } else { descriptor___8.modname = "ceph"; descriptor___8.function = "ceph_fill_trace"; descriptor___8.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___8.format = "%.*s %12.12s:%-4d : d_instantiate %p NULL\n"; descriptor___8.lineno = 1157U; descriptor___8.flags = 0U; tmp___30 = ldv__builtin_expect((long )descriptor___8.flags & 1L, 0L); if (tmp___30 != 0L) { tmp___29 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___8, "ceph: %.*s %12.12s:%-4d : d_instantiate %p NULL\n", 3, (char *)" ", tmp___29, 1157, dn); } else { } d_instantiate(dn, 0); if ((int )have_lease) { tmp___31 = d_unhashed(dn); if (tmp___31 != 0) { d_rehash(dn); } else { } } else { } update_dentry_lease(dn, rinfo->dlease, session, req->r_request_started); } goto done; } else { } ininfo = rinfo->targeti.in; vino.ino = ininfo->ino; vino.snap = ininfo->snapid; in = dn->d_inode; if ((unsigned long )in == (unsigned long )((struct inode *)0)) { in = ceph_get_inode(sb, vino); tmp___33 = IS_ERR((void const *)in); if (tmp___33 != 0L) { printk("\vceph: fill_trace bad get_inode %llx.%llx\n", vino.ino, vino.snap); tmp___32 = PTR_ERR((void const *)in); err = (int )tmp___32; d_drop(dn); goto done; } else { } dn = splice_dentry(dn, in, & have_lease, 1); tmp___35 = IS_ERR((void const *)dn); if (tmp___35 != 0L) { tmp___34 = PTR_ERR((void const *)dn); err = (int )tmp___34; goto done; } else { } req->r_dentry = dn; ihold(in); } else { tmp___40 = ceph_ino(in); if (tmp___40 == vino.ino) { tmp___41 = ceph_snap(in); if (tmp___41 == vino.snap) { ihold(in); } else { goto _L; } } else { _L: /* CIL Label */ descriptor___9.modname = "ceph"; descriptor___9.function = "ceph_fill_trace"; descriptor___9.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___9.format = "%.*s %12.12s:%-4d : %p links to %p %llx.%llx, not %llx.%llx\n"; descriptor___9.lineno = 1195U; descriptor___9.flags = 0U; tmp___39 = ldv__builtin_expect((long )descriptor___9.flags & 1L, 0L); if (tmp___39 != 0L) { tmp___36 = ceph_snap(in); tmp___37 = ceph_ino(in); tmp___38 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___9, "ceph: %.*s %12.12s:%-4d : %p links to %p %llx.%llx, not %llx.%llx\n", 3, (char *)" ", tmp___38, 1195, dn, in, tmp___37, tmp___36, vino.ino, vino.snap); } else { } have_lease = 0; in = 0; } } if ((int )have_lease) { update_dentry_lease(dn, rinfo->dlease, session, req->r_request_started); } else { } descriptor___10.modname = "ceph"; descriptor___10.function = "ceph_fill_trace"; descriptor___10.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___10.format = "%.*s %12.12s:%-4d : final dn %p\n"; descriptor___10.lineno = 1203U; descriptor___10.flags = 0U; tmp___43 = ldv__builtin_expect((long )descriptor___10.flags & 1L, 0L); if (tmp___43 != 0L) { tmp___42 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___10, "ceph: %.*s %12.12s:%-4d : final dn %p\n", 3, (char *)" ", tmp___42, 1203, dn); } else { } i = i + 1; } else { goto _L___0; } } } else _L___0: /* CIL Label */ if (req->r_op == 1024 || req->r_op == 5120) { dn___0 = req->r_dentry; tmp___44 = ldv__builtin_expect((unsigned long )dn___0 == (unsigned long )((struct dentry *)0), 0L); if (tmp___44 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (1210), "i" (12UL)); ldv_30074: ; goto ldv_30074; } else { } tmp___45 = ldv__builtin_expect((unsigned long )req->r_locked_dir == (unsigned long )((struct inode *)0), 0L); if (tmp___45 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (1211), "i" (12UL)); ldv_30075: ; goto ldv_30075; } else { } tmp___46 = ceph_snap(req->r_locked_dir); tmp___47 = ldv__builtin_expect(tmp___46 != 0xffffffffffffffffULL, 0L); if (tmp___47 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"), "i" (1212), "i" (12UL)); ldv_30076: ; goto ldv_30076; } else { } ininfo = rinfo->targeti.in; vino.ino = ininfo->ino; vino.snap = ininfo->snapid; in = ceph_get_inode(sb, vino); tmp___49 = IS_ERR((void const *)in); if (tmp___49 != 0L) { printk("\vceph: fill_inode get_inode badness %llx.%llx\n", vino.ino, vino.snap); tmp___48 = PTR_ERR((void const *)in); err = (int )tmp___48; d_delete(dn___0); goto done; } else { } descriptor___11.modname = "ceph"; descriptor___11.function = "ceph_fill_trace"; descriptor___11.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___11.format = "%.*s %12.12s:%-4d : linking snapped dir %p to dn %p\n"; descriptor___11.lineno = 1224U; descriptor___11.flags = 0U; tmp___51 = ldv__builtin_expect((long )descriptor___11.flags & 1L, 0L); if (tmp___51 != 0L) { tmp___50 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___11, "ceph: %.*s %12.12s:%-4d : linking snapped dir %p to dn %p\n", 3, (char *)" ", tmp___50, 1224, in, dn___0); } else { } dn___0 = splice_dentry(dn___0, in, 0, 1); tmp___53 = IS_ERR((void const *)dn___0); if (tmp___53 != 0L) { tmp___52 = PTR_ERR((void const *)dn___0); err = (int )tmp___52; goto done; } else { } req->r_dentry = dn___0; ihold(in); (rinfo->head)->is_dentry = 1U; } else { } if ((unsigned int )(rinfo->head)->is_target != 0U) { vino.ino = (rinfo->targeti.in)->ino; vino.snap = (rinfo->targeti.in)->snapid; if ((unsigned long )in == (unsigned long )((struct inode *)0)) { goto _L___2; } else { tmp___57 = ceph_ino(in); if (tmp___57 != vino.ino) { goto _L___2; } else { tmp___58 = ceph_snap(in); if (tmp___58 != vino.snap) { _L___2: /* CIL Label */ in = ceph_get_inode(sb, vino); tmp___56 = IS_ERR((void const *)in); if (tmp___56 != 0L) { tmp___55 = PTR_ERR((void const *)in); err = (int )tmp___55; goto done; } else { } } else { } } } req->r_target_inode = in; err = fill_inode(in, & rinfo->targeti, 0, session, req->r_request_started, (rinfo->head)->result == 0U ? req->r_fmode : -1, & req->r_caps_reservation); if (err < 0) { tmp___59 = ceph_inode(in); tmp___60 = ceph_inode(in); printk("\vceph: fill_inode badness %p %llx.%llx\n", in, tmp___60->i_vino.ino, tmp___59->i_vino.snap); goto done; } else { } } else { } done: descriptor___12.modname = "ceph"; descriptor___12.function = "ceph_fill_trace"; descriptor___12.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___12.format = "%.*s %12.12s:%-4d : fill_trace done err=%d\n"; descriptor___12.lineno = 1263U; descriptor___12.flags = 0U; tmp___62 = ldv__builtin_expect((long )descriptor___12.flags & 1L, 0L); if (tmp___62 != 0L) { tmp___61 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___12, "ceph: %.*s %12.12s:%-4d : fill_trace done err=%d\n", 3, (char *)" ", tmp___61, 1263, err); } else { } return (err); } } int ceph_readdir_prepopulate(struct ceph_mds_request *req , struct ceph_mds_session *session ) { struct dentry *parent ; struct ceph_mds_reply_info_parsed *rinfo ; struct qstr dname ; struct dentry *dn ; struct inode *in ; int err ; int i ; struct inode *snapdir ; struct ceph_mds_request_head *rhead ; u64 frag ; struct ceph_dentry_info *di ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct ceph_vino vino ; struct _ddebug descriptor___1 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___2 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___3 ; char const *tmp___7 ; long tmp___8 ; struct _ddebug descriptor___4 ; char const *tmp___9 ; long tmp___10 ; raw_spinlock_t *tmp___11 ; u64 tmp___12 ; u64 tmp___13 ; loff_t tmp___14 ; struct _ddebug descriptor___5 ; char const *tmp___15 ; long tmp___16 ; long tmp___17 ; long tmp___18 ; long tmp___19 ; int tmp___20 ; struct _ddebug descriptor___6 ; char const *tmp___21 ; long tmp___22 ; { parent = req->r_dentry; rinfo = & req->r_reply_info; err = 0; snapdir = 0; rhead = (struct ceph_mds_request_head *)(req->r_request)->front.iov_base; frag = (u64 )rhead->args.readdir.frag; if ((rinfo->head)->op == 1026U) { snapdir = ceph_get_snapdir(parent->d_inode); parent = d_find_alias(snapdir); descriptor.modname = "ceph"; descriptor.function = "ceph_readdir_prepopulate"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : readdir_prepopulate %d items under SNAPDIR dn %p\n"; descriptor.lineno = 1288U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : readdir_prepopulate %d items under SNAPDIR dn %p\n", 3, (char *)" ", tmp, 1288, rinfo->ldv_29667.ldv_29666.dir_nr, parent); } else { } } else { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_readdir_prepopulate"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : readdir_prepopulate %d items under dn %p\n"; descriptor___0.lineno = 1291U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : readdir_prepopulate %d items under dn %p\n", 3, (char *)" ", tmp___1, 1291, rinfo->ldv_29667.ldv_29666.dir_nr, parent); } else { } if ((unsigned long )rinfo->ldv_29667.ldv_29666.dir_dir != (unsigned long )((struct ceph_mds_reply_dirfrag *)0)) { ceph_fill_dirfrag(parent->d_inode, rinfo->ldv_29667.ldv_29666.dir_dir); } else { } } i = 0; goto ldv_30107; ldv_30106: dname.name = (unsigned char const *)*(rinfo->ldv_29667.ldv_29666.dir_dname + (unsigned long )i); dname.ldv_11489.ldv_11487.len = *(rinfo->ldv_29667.ldv_29666.dir_dname_len + (unsigned long )i); dname.ldv_11489.ldv_11487.hash = full_name_hash(dname.name, dname.ldv_11489.ldv_11487.len); vino.ino = ((rinfo->ldv_29667.ldv_29666.dir_in + (unsigned long )i)->in)->ino; vino.snap = ((rinfo->ldv_29667.ldv_29666.dir_in + (unsigned long )i)->in)->snapid; retry_lookup: dn = d_lookup(parent, & dname); descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_readdir_prepopulate"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : d_lookup on parent=%p name=%.*s got %p\n"; descriptor___1.lineno = 1309U; descriptor___1.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : d_lookup on parent=%p name=%.*s got %p\n", 3, (char *)" ", tmp___3, 1309, parent, dname.ldv_11489.ldv_11487.len, dname.name, dn); } else { } if ((unsigned long )dn == (unsigned long )((struct dentry *)0)) { dn = d_alloc(parent, (struct qstr const *)(& dname)); descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_readdir_prepopulate"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : d_alloc %p \'%.*s\' = %p\n"; descriptor___2.lineno = 1314U; descriptor___2.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : d_alloc %p \'%.*s\' = %p\n", 3, (char *)" ", tmp___5, 1314, parent, dname.ldv_11489.ldv_11487.len, dname.name, dn); } else { } if ((unsigned long )dn == (unsigned long )((struct dentry *)0)) { descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_readdir_prepopulate"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : d_alloc badness\n"; descriptor___3.lineno = 1316U; descriptor___3.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : d_alloc badness\n", 3, (char *)" ", tmp___7, 1316); } else { } err = -12; goto out; } else { } err = ceph_init_dentry(dn); if (err < 0) { dput(dn); goto out; } else { } } else if ((unsigned long )dn->d_inode != (unsigned long )((struct inode *)0)) { tmp___12 = ceph_ino(dn->d_inode); if (tmp___12 != vino.ino) { goto _L___0; } else { tmp___13 = ceph_snap(dn->d_inode); if (tmp___13 != vino.snap) { _L___0: /* CIL Label */ descriptor___4.modname = "ceph"; descriptor___4.function = "ceph_readdir_prepopulate"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : dn %p points to wrong inode %p\n"; descriptor___4.lineno = 1329U; descriptor___4.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : dn %p points to wrong inode %p\n", 3, (char *)" ", tmp___9, 1329, dn, dn->d_inode); } else { } d_delete(dn); dput(dn); goto retry_lookup; } else { goto _L; } } } else { _L: /* CIL Label */ spin_lock(& parent->d_lock); tmp___11 = spinlock_check(& dn->d_lock); _raw_spin_lock_nested(tmp___11, 1); list_move(& dn->d_u.d_child, & parent->d_subdirs); spin_unlock(& dn->d_lock); spin_unlock(& parent->d_lock); } di = (struct ceph_dentry_info *)dn->d_fsdata; tmp___14 = ceph_make_fpos((unsigned int )frag, req->r_readdir_offset + (u32 )i); di->offset = (u64 )tmp___14; if ((unsigned long )dn->d_inode != (unsigned long )((struct inode *)0)) { in = dn->d_inode; } else { in = ceph_get_inode(parent->d_sb, vino); tmp___18 = IS_ERR((void const *)in); if (tmp___18 != 0L) { descriptor___5.modname = "ceph"; descriptor___5.function = "ceph_readdir_prepopulate"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : new_inode badness\n"; descriptor___5.lineno = 1351U; descriptor___5.flags = 0U; tmp___16 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___16 != 0L) { tmp___15 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : new_inode badness\n", 3, (char *)" ", tmp___15, 1351); } else { } d_drop(dn); dput(dn); tmp___17 = PTR_ERR((void const *)in); err = (int )tmp___17; goto out; } else { } dn = splice_dentry(dn, in, 0, 0); tmp___19 = IS_ERR((void const *)dn); if (tmp___19 != 0L) { dn = 0; } else { } } tmp___20 = fill_inode(in, rinfo->ldv_29667.ldv_29666.dir_in + (unsigned long )i, 0, session, req->r_request_started, -1, & req->r_caps_reservation); if (tmp___20 < 0) { printk("\vceph: fill_inode badness on %p\n", in); goto next_item; } else { } if ((unsigned long )dn != (unsigned long )((struct dentry *)0)) { update_dentry_lease(dn, *(rinfo->ldv_29667.ldv_29666.dir_dlease + (unsigned long )i), req->r_session, req->r_request_started); } else { } next_item: ; if ((unsigned long )dn != (unsigned long )((struct dentry *)0)) { dput(dn); } else { } i = i + 1; ldv_30107: ; if (rinfo->ldv_29667.ldv_29666.dir_nr > i) { goto ldv_30106; } else { } req->r_did_prepopulate = 1; out: ; if ((unsigned long )snapdir != (unsigned long )((struct inode *)0)) { iput(snapdir); dput(parent); } else { } descriptor___6.modname = "ceph"; descriptor___6.function = "ceph_readdir_prepopulate"; descriptor___6.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___6.format = "%.*s %12.12s:%-4d : readdir_prepopulate done\n"; descriptor___6.lineno = 1383U; descriptor___6.flags = 0U; tmp___22 = ldv__builtin_expect((long )descriptor___6.flags & 1L, 0L); if (tmp___22 != 0L) { tmp___21 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___6, "ceph: %.*s %12.12s:%-4d : readdir_prepopulate done\n", 3, (char *)" ", tmp___21, 1383); } else { } return (err); } } int ceph_inode_set_size(struct inode *inode , loff_t size ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int ret ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { tmp = ceph_inode(inode); ci = tmp; ret = 0; spin_lock(& ci->i_ceph_lock); descriptor.modname = "ceph"; descriptor.function = "ceph_inode_set_size"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : set_size %p %llu -> %llu\n"; descriptor.lineno = 1393U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : set_size %p %llu -> %llu\n", 3, (char *)" ", tmp___0, 1393, inode, inode->i_size, size); } else { } inode->i_size = size; inode->i_blocks = (blkcnt_t )((size + 511LL) >> 9); if ((unsigned long long )(size << 1) >= ci->i_max_size && ci->i_reported_size << 1 < ci->i_max_size) { ret = 1; } else { } spin_unlock(& ci->i_ceph_lock); return (ret); } } void ceph_queue_writeback(struct inode *inode ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct ceph_inode_info *tmp___3 ; struct ceph_fs_client *tmp___4 ; bool tmp___5 ; { ihold(inode); tmp___3 = ceph_inode(inode); tmp___4 = ceph_inode_to_client(inode); tmp___5 = queue_work(tmp___4->wb_wq, & tmp___3->i_wb_work); if ((int )tmp___5) { descriptor.modname = "ceph"; descriptor.function = "ceph_queue_writeback"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_queue_writeback %p\n"; descriptor.lineno = 1415U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_queue_writeback %p\n", 3, (char *)" ", tmp, 1415, inode); } else { } } else { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_queue_writeback"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : ceph_queue_writeback %p failed\n"; descriptor___0.lineno = 1417U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : ceph_queue_writeback %p failed\n", 3, (char *)" ", tmp___1, 1417, inode); } else { } iput(inode); } return; } } static void ceph_writeback_work(struct work_struct *work ) { struct ceph_inode_info *ci ; struct work_struct const *__mptr ; struct inode *inode ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { __mptr = (struct work_struct const *)work; ci = (struct ceph_inode_info *)__mptr + 0xfffffffffffffc10UL; inode = & ci->vfs_inode; descriptor.modname = "ceph"; descriptor.function = "ceph_writeback_work"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : writeback %p\n"; descriptor.lineno = 1428U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : writeback %p\n", 3, (char *)" ", tmp, 1428, inode); } else { } filemap_fdatawrite(& inode->i_data); iput(inode); return; } } void ceph_queue_invalidate(struct inode *inode ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct ceph_inode_info *tmp___3 ; struct ceph_fs_client *tmp___4 ; bool tmp___5 ; { ihold(inode); tmp___3 = ceph_inode(inode); tmp___4 = ceph_inode_to_client(inode); tmp___5 = queue_work(tmp___4->pg_inv_wq, & tmp___3->i_pg_inv_work); if ((int )tmp___5) { descriptor.modname = "ceph"; descriptor.function = "ceph_queue_invalidate"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_queue_invalidate %p\n"; descriptor.lineno = 1441U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_queue_invalidate %p\n", 3, (char *)" ", tmp, 1441, inode); } else { } } else { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_queue_invalidate"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : ceph_queue_invalidate %p failed\n"; descriptor___0.lineno = 1443U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : ceph_queue_invalidate %p failed\n", 3, (char *)" ", tmp___1, 1443, inode); } else { } iput(inode); } return; } } static void ceph_invalidate_work(struct work_struct *work ) { struct ceph_inode_info *ci ; struct work_struct const *__mptr ; struct inode *inode ; u32 orig_gen ; int check ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___1 ; char const *tmp___3 ; long tmp___4 ; { __mptr = (struct work_struct const *)work; ci = (struct ceph_inode_info *)__mptr + 0xfffffffffffffbc0UL; inode = & ci->vfs_inode; check = 0; spin_lock(& ci->i_ceph_lock); descriptor.modname = "ceph"; descriptor.function = "ceph_invalidate_work"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : invalidate_pages %p gen %d revoking %d\n"; descriptor.lineno = 1462U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : invalidate_pages %p gen %d revoking %d\n", 3, (char *)" ", tmp, 1462, inode, ci->i_rdcache_gen, ci->i_rdcache_revoking); } else { } if (ci->i_rdcache_revoking != ci->i_rdcache_gen) { spin_unlock(& ci->i_ceph_lock); goto out; } else { } orig_gen = ci->i_rdcache_gen; spin_unlock(& ci->i_ceph_lock); truncate_inode_pages(& inode->i_data, 0LL); spin_lock(& ci->i_ceph_lock); if (ci->i_rdcache_gen == orig_gen && ci->i_rdcache_revoking == orig_gen) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_invalidate_work"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : invalidate_pages %p gen %d successful\n"; descriptor___0.lineno = 1477U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : invalidate_pages %p gen %d successful\n", 3, (char *)" ", tmp___1, 1477, inode, ci->i_rdcache_gen); } else { } ci->i_rdcache_revoking = ci->i_rdcache_revoking - 1U; check = 1; } else { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_invalidate_work"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : invalidate_pages %p gen %d raced, now %d revoking %d\n"; descriptor___1.lineno = 1483U; descriptor___1.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : invalidate_pages %p gen %d raced, now %d revoking %d\n", 3, (char *)" ", tmp___3, 1483, inode, orig_gen, ci->i_rdcache_gen, ci->i_rdcache_revoking); } else { } } spin_unlock(& ci->i_ceph_lock); if (check != 0) { ceph_check_caps(ci, 0, 0); } else { } out: iput(inode); return; } } static void ceph_vmtruncate_work(struct work_struct *work ) { struct ceph_inode_info *ci ; struct work_struct const *__mptr ; struct inode *inode ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { __mptr = (struct work_struct const *)work; ci = (struct ceph_inode_info *)__mptr + 0xfffffffffffffb70UL; inode = & ci->vfs_inode; descriptor.modname = "ceph"; descriptor.function = "ceph_vmtruncate_work"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : vmtruncate_work %p\n"; descriptor.lineno = 1505U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : vmtruncate_work %p\n", 3, (char *)" ", tmp, 1505, inode); } else { } ldv_mutex_lock_25(& inode->i_mutex); __ceph_do_pending_vmtruncate(inode); ldv_mutex_unlock_26(& inode->i_mutex); iput(inode); return; } } void ceph_queue_vmtruncate(struct inode *inode ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; struct ceph_fs_client *tmp___4 ; bool tmp___5 ; { tmp = ceph_inode(inode); ci = tmp; ihold(inode); tmp___4 = ceph_sb_to_client(inode->i_sb); tmp___5 = queue_work(tmp___4->trunc_wq, & ci->i_vmtruncate_work); if ((int )tmp___5) { descriptor.modname = "ceph"; descriptor.function = "ceph_queue_vmtruncate"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_queue_vmtruncate %p\n"; descriptor.lineno = 1523U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_queue_vmtruncate %p\n", 3, (char *)" ", tmp___0, 1523, inode); } else { } } else { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_queue_vmtruncate"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : ceph_queue_vmtruncate %p failed, pending=%d\n"; descriptor___0.lineno = 1526U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : ceph_queue_vmtruncate %p failed, pending=%d\n", 3, (char *)" ", tmp___2, 1526, inode, ci->i_truncate_pending); } else { } iput(inode); } return; } } void __ceph_do_pending_vmtruncate(struct inode *inode ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; u64 to ; int wrbuffer_refs ; int finish ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; struct _ddebug descriptor___1 ; char const *tmp___4 ; long tmp___5 ; { tmp = ceph_inode(inode); ci = tmp; finish = 0; retry: spin_lock(& ci->i_ceph_lock); if (ci->i_truncate_pending == 0) { descriptor.modname = "ceph"; descriptor.function = "__ceph_do_pending_vmtruncate"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __do_pending_vmtruncate %p none pending\n"; descriptor.lineno = 1546U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __do_pending_vmtruncate %p none pending\n", 3, (char *)" ", tmp___0, 1546, inode); } else { } spin_unlock(& ci->i_ceph_lock); return; } else { } if (ci->i_wrbuffer_ref_head < ci->i_wrbuffer_ref) { descriptor___0.modname = "ceph"; descriptor___0.function = "__ceph_do_pending_vmtruncate"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : __do_pending_vmtruncate %p flushing snaps first\n"; descriptor___0.lineno = 1557U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : __do_pending_vmtruncate %p flushing snaps first\n", 3, (char *)" ", tmp___2, 1557, inode); } else { } spin_unlock(& ci->i_ceph_lock); filemap_write_and_wait_range(& inode->i_data, 0LL, (inode->i_sb)->s_maxbytes); goto retry; } else { } to = ci->i_truncate_size; wrbuffer_refs = ci->i_wrbuffer_ref; descriptor___1.modname = "ceph"; descriptor___1.function = "__ceph_do_pending_vmtruncate"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : __do_pending_vmtruncate %p (%d) to %lld\n"; descriptor___1.lineno = 1567U; descriptor___1.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : __do_pending_vmtruncate %p (%d) to %lld\n", 3, (char *)" ", tmp___4, 1567, inode, ci->i_truncate_pending, to); } else { } spin_unlock(& ci->i_ceph_lock); truncate_inode_pages(inode->i_mapping, (loff_t )to); spin_lock(& ci->i_ceph_lock); if (ci->i_truncate_size == to) { ci->i_truncate_pending = 0; finish = 1; } else { } spin_unlock(& ci->i_ceph_lock); if (finish == 0) { goto retry; } else { } if (wrbuffer_refs == 0) { ceph_check_caps(ci, 2, 0); } else { } __wake_up(& ci->i_cap_wq, 3U, 0, 0); return; } } static void *ceph_sym_follow_link(struct dentry *dentry , struct nameidata *nd ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; { tmp = ceph_inode(dentry->d_inode); ci = tmp; nd_set_link(nd, ci->i_symlink); return (0); } } static struct inode_operations const ceph_symlink_iops = {0, & ceph_sym_follow_link, 0, 0, & generic_readlink, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; int ceph_setattr(struct dentry *dentry , struct iattr *attr ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct inode *parent_inode ; unsigned int ia_valid ; struct ceph_mds_request *req ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp___0 ; int issued ; int release ; int dirtied ; int mask ; int err ; int inode_dirty_flags ; u64 tmp___1 ; long tmp___2 ; long tmp___3 ; struct _ddebug descriptor ; char const *tmp___4 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___0 ; char const *tmp___7 ; long tmp___8 ; struct _ddebug descriptor___1 ; char const *tmp___9 ; long tmp___10 ; struct _ddebug descriptor___2 ; char const *tmp___11 ; long tmp___12 ; struct _ddebug descriptor___3 ; char const *tmp___13 ; long tmp___14 ; int tmp___15 ; int tmp___16 ; struct _ddebug descriptor___4 ; char const *tmp___17 ; long tmp___18 ; int tmp___19 ; int tmp___20 ; struct _ddebug descriptor___5 ; char const *tmp___21 ; long tmp___22 ; bool only ; struct _ddebug descriptor___6 ; char const *tmp___23 ; long tmp___24 ; struct _ddebug descriptor___7 ; char const *tmp___25 ; long tmp___26 ; struct _ddebug descriptor___8 ; char const *tmp___27 ; char const *tmp___28 ; long tmp___29 ; { inode = dentry->d_inode; tmp = ceph_inode(inode); ci = tmp; ia_valid = attr->ia_valid; tmp___0 = ceph_sb_to_client(dentry->d_sb); mdsc = tmp___0->mdsc; release = 0; dirtied = 0; mask = 0; err = 0; inode_dirty_flags = 0; tmp___1 = ceph_snap(inode); if (tmp___1 != 0xfffffffffffffffeULL) { return (-30); } else { } __ceph_do_pending_vmtruncate(inode); err = inode_change_ok((struct inode const *)inode, attr); if (err != 0) { return (err); } else { } req = ceph_mdsc_create_request(mdsc, 4360, 2); tmp___3 = IS_ERR((void const *)req); if (tmp___3 != 0L) { tmp___2 = PTR_ERR((void const *)req); return ((int )tmp___2); } else { } spin_lock(& ci->i_ceph_lock); issued = __ceph_caps_issued(ci, 0); descriptor.modname = "ceph"; descriptor.function = "ceph_setattr"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : setattr %p issued %s\n"; descriptor.lineno = 1636U; descriptor.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___4 = ceph_cap_string(issued); tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : setattr %p issued %s\n", 3, (char *)" ", tmp___5, 1636, inode, tmp___4); } else { } if ((ia_valid & 2U) != 0U) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_setattr"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : setattr %p uid %d -> %d\n"; descriptor___0.lineno = 1640U; descriptor___0.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : setattr %p uid %d -> %d\n", 3, (char *)" ", tmp___7, 1640, inode, inode->i_uid, attr->ia_uid); } else { } if ((issued & 8) != 0) { inode->i_uid = attr->ia_uid; dirtied = dirtied | 8; } else if ((issued & 4) == 0 || attr->ia_uid != inode->i_uid) { req->r_args.setattr.uid = attr->ia_uid; mask = mask | 2; release = release | 4; } else { } } else { } if ((ia_valid & 4U) != 0U) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_setattr"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : setattr %p gid %d -> %d\n"; descriptor___1.lineno = 1653U; descriptor___1.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : setattr %p gid %d -> %d\n", 3, (char *)" ", tmp___9, 1653, inode, inode->i_gid, attr->ia_gid); } else { } if ((issued & 8) != 0) { inode->i_gid = attr->ia_gid; dirtied = dirtied | 8; } else if ((issued & 4) == 0 || attr->ia_gid != inode->i_gid) { req->r_args.setattr.gid = attr->ia_gid; mask = mask | 4; release = release | 4; } else { } } else { } if ((int )ia_valid & 1) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_setattr"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : setattr %p mode 0%o -> 0%o\n"; descriptor___2.lineno = 1666U; descriptor___2.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : setattr %p mode 0%o -> 0%o\n", 3, (char *)" ", tmp___11, 1666, inode, (int )inode->i_mode, (int )attr->ia_mode); } else { } if ((issued & 8) != 0) { inode->i_mode = attr->ia_mode; dirtied = dirtied | 8; } else if ((issued & 4) == 0 || (int )attr->ia_mode != (int )inode->i_mode) { req->r_args.setattr.mode = (unsigned int )attr->ia_mode; mask = mask | 1; release = release | 4; } else { } } else { } if ((ia_valid & 16U) != 0U) { descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_setattr"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : setattr %p atime %ld.%ld -> %ld.%ld\n"; descriptor___3.lineno = 1681U; descriptor___3.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : setattr %p atime %ld.%ld -> %ld.%ld\n", 3, (char *)" ", tmp___13, 1681, inode, inode->i_atime.tv_sec, inode->i_atime.tv_nsec, attr->ia_atime.tv_sec, attr->ia_atime.tv_nsec); } else { } if ((issued & 512) != 0) { ci->i_time_warp_seq = ci->i_time_warp_seq + 1U; inode->i_atime = attr->ia_atime; dirtied = dirtied | 512; } else if ((issued & 4096) != 0) { tmp___16 = timespec_compare((struct timespec const *)(& inode->i_atime), (struct timespec const *)(& attr->ia_atime)); if (tmp___16 < 0) { inode->i_atime = attr->ia_atime; dirtied = dirtied | 4096; } else { goto _L; } } else _L: /* CIL Label */ if ((issued & 256) == 0) { ceph_encode_timespec(& req->r_args.setattr.atime, (struct timespec const *)(& attr->ia_atime)); mask = mask | 16; release = release | 7168; } else { tmp___15 = timespec_equal((struct timespec const *)(& inode->i_atime), (struct timespec const *)(& attr->ia_atime)); if (tmp___15 == 0) { ceph_encode_timespec(& req->r_args.setattr.atime, (struct timespec const *)(& attr->ia_atime)); mask = mask | 16; release = release | 7168; } else { } } } else { } if ((ia_valid & 32U) != 0U) { descriptor___4.modname = "ceph"; descriptor___4.function = "ceph_setattr"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : setattr %p mtime %ld.%ld -> %ld.%ld\n"; descriptor___4.lineno = 1703U; descriptor___4.flags = 0U; tmp___18 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___18 != 0L) { tmp___17 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : setattr %p mtime %ld.%ld -> %ld.%ld\n", 3, (char *)" ", tmp___17, 1703, inode, inode->i_mtime.tv_sec, inode->i_mtime.tv_nsec, attr->ia_mtime.tv_sec, attr->ia_mtime.tv_nsec); } else { } if ((issued & 512) != 0) { ci->i_time_warp_seq = ci->i_time_warp_seq + 1U; inode->i_mtime = attr->ia_mtime; dirtied = dirtied | 512; } else if ((issued & 4096) != 0) { tmp___20 = timespec_compare((struct timespec const *)(& inode->i_mtime), (struct timespec const *)(& attr->ia_mtime)); if (tmp___20 < 0) { inode->i_mtime = attr->ia_mtime; dirtied = dirtied | 4096; } else { goto _L___0; } } else _L___0: /* CIL Label */ if ((issued & 256) == 0) { ceph_encode_timespec(& req->r_args.setattr.mtime, (struct timespec const *)(& attr->ia_mtime)); mask = mask | 8; release = release | 6400; } else { tmp___19 = timespec_equal((struct timespec const *)(& inode->i_mtime), (struct timespec const *)(& attr->ia_mtime)); if (tmp___19 == 0) { ceph_encode_timespec(& req->r_args.setattr.mtime, (struct timespec const *)(& attr->ia_mtime)); mask = mask | 8; release = release | 6400; } else { } } } else { } if ((ia_valid & 8U) != 0U) { descriptor___5.modname = "ceph"; descriptor___5.function = "ceph_setattr"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : setattr %p size %lld -> %lld\n"; descriptor___5.lineno = 1724U; descriptor___5.flags = 0U; tmp___22 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___22 != 0L) { tmp___21 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : setattr %p size %lld -> %lld\n", 3, (char *)" ", tmp___21, 1724, inode, inode->i_size, attr->ia_size); } else { } if (attr->ia_size > (inode->i_sb)->s_maxbytes) { err = -22; goto out; } else { } if ((issued & 512) != 0 && attr->ia_size > inode->i_size) { inode->i_size = attr->ia_size; inode->i_blocks = (blkcnt_t )((attr->ia_size + 511LL) >> 9); inode->i_ctime = attr->ia_ctime; ci->i_reported_size = (u64 )attr->ia_size; dirtied = dirtied | 512; } else if ((issued & 256) == 0 || attr->ia_size != inode->i_size) { req->r_args.setattr.size = (unsigned long long )attr->ia_size; req->r_args.setattr.old_size = (unsigned long long )inode->i_size; mask = mask | 32; release = release | 6400; } else { } } else { } if ((ia_valid & 64U) != 0U) { only = (ia_valid & 63U) == 0U; descriptor___6.modname = "ceph"; descriptor___6.function = "ceph_setattr"; descriptor___6.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___6.format = "%.*s %12.12s:%-4d : setattr %p ctime %ld.%ld -> %ld.%ld (%s)\n"; descriptor___6.lineno = 1755U; descriptor___6.flags = 0U; tmp___24 = ldv__builtin_expect((long )descriptor___6.flags & 1L, 0L); if (tmp___24 != 0L) { tmp___23 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___6, "ceph: %.*s %12.12s:%-4d : setattr %p ctime %ld.%ld -> %ld.%ld (%s)\n", 3, (char *)" ", tmp___23, 1755, inode, inode->i_ctime.tv_sec, inode->i_ctime.tv_nsec, attr->ia_ctime.tv_sec, attr->ia_ctime.tv_nsec, (int )only ? (char *)"ctime only" : (char *)"ignored"); } else { } inode->i_ctime = attr->ia_ctime; if ((int )only) { if ((issued & 8) != 0) { dirtied = dirtied | 8; } else if ((issued & 512) != 0) { dirtied = dirtied | 512; } else if ((issued & 128) != 0) { dirtied = dirtied | 128; } else { mask = mask | 64; } } else { } } else { } if ((ia_valid & 8192U) != 0U) { descriptor___7.modname = "ceph"; descriptor___7.function = "ceph_setattr"; descriptor___7.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___7.format = "%.*s %12.12s:%-4d : setattr %p ATTR_FILE ... hrm!\n"; descriptor___7.lineno = 1774U; descriptor___7.flags = 0U; tmp___26 = ldv__builtin_expect((long )descriptor___7.flags & 1L, 0L); if (tmp___26 != 0L) { tmp___25 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___7, "ceph: %.*s %12.12s:%-4d : setattr %p ATTR_FILE ... hrm!\n", 3, (char *)" ", tmp___25, 1774, inode); } else { } } else { } if (dirtied != 0) { inode_dirty_flags = __ceph_mark_dirty_caps(ci, dirtied); inode->i_ctime = current_kernel_time(); } else { } release = release & issued; spin_unlock(& ci->i_ceph_lock); if (inode_dirty_flags != 0) { __mark_inode_dirty(inode, inode_dirty_flags); } else { } if (mask != 0) { req->r_inode = inode; ihold(inode); req->r_inode_drop = release; req->r_args.setattr.mask = (unsigned int )mask; req->r_num_caps = 1; parent_inode = ceph_get_dentry_parent_inode(dentry); err = ceph_mdsc_do_request(mdsc, parent_inode, req); iput(parent_inode); } else { } descriptor___8.modname = "ceph"; descriptor___8.function = "ceph_setattr"; descriptor___8.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___8.format = "%.*s %12.12s:%-4d : setattr %p result=%d (%s locally, %d remote)\n"; descriptor___8.lineno = 1798U; descriptor___8.flags = 0U; tmp___29 = ldv__builtin_expect((long )descriptor___8.flags & 1L, 0L); if (tmp___29 != 0L) { tmp___27 = ceph_cap_string(dirtied); tmp___28 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___8, "ceph: %.*s %12.12s:%-4d : setattr %p result=%d (%s locally, %d remote)\n", 3, (char *)" ", tmp___28, 1798, inode, err, tmp___27, mask); } else { } ceph_mdsc_put_request(req); __ceph_do_pending_vmtruncate(inode); return (err); out: spin_unlock(& ci->i_ceph_lock); ceph_mdsc_put_request(req); return (err); } } int ceph_do_getattr(struct inode *inode , int mask ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; int err ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; u64 tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; char const *tmp___4 ; long tmp___5 ; struct ceph_inode_info *tmp___6 ; int tmp___7 ; long tmp___8 ; long tmp___9 ; struct _ddebug descriptor___1 ; char const *tmp___10 ; long tmp___11 ; { tmp = ceph_sb_to_client(inode->i_sb); fsc = tmp; mdsc = fsc->mdsc; tmp___2 = ceph_snap(inode); if (tmp___2 == 0xffffffffffffffffULL) { descriptor.modname = "ceph"; descriptor.function = "ceph_do_getattr"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : do_getattr inode %p SNAPDIR\n"; descriptor.lineno = 1821U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : do_getattr inode %p SNAPDIR\n", 3, (char *)" ", tmp___0, 1821, inode); } else { } return (0); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_do_getattr"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : do_getattr inode %p mask %s mode 0%o\n"; descriptor___0.lineno = 1825U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___3 = ceph_cap_string(mask); tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : do_getattr inode %p mask %s mode 0%o\n", 3, (char *)" ", tmp___4, 1825, inode, tmp___3, (int )inode->i_mode); } else { } tmp___6 = ceph_inode(inode); tmp___7 = ceph_caps_issued_mask(tmp___6, mask, 1); if (tmp___7 != 0) { return (0); } else { } req = ceph_mdsc_create_request(mdsc, 257, 0); tmp___9 = IS_ERR((void const *)req); if (tmp___9 != 0L) { tmp___8 = PTR_ERR((void const *)req); return ((int )tmp___8); } else { } req->r_inode = inode; ihold(inode); req->r_num_caps = 1; req->r_args.getattr.mask = (unsigned int )mask; err = ceph_mdsc_do_request(mdsc, 0, req); ceph_mdsc_put_request(req); descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_do_getattr"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : do_getattr result=%d\n"; descriptor___1.lineno = 1838U; descriptor___1.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/inode.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : do_getattr result=%d\n", 3, (char *)" ", tmp___10, 1838, err); } else { } return (err); } } int ceph_permission(struct inode *inode , int mask ) { int err ; { if ((mask & 128) != 0) { return (-10); } else { } err = ceph_do_getattr(inode, 4); if (err == 0) { err = generic_permission(inode, mask); } else { } return (err); } } int ceph_getattr(struct vfsmount *mnt , struct dentry *dentry , struct kstat *stat ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int err ; ino_t tmp___0 ; u64 tmp___1 ; u64 tmp___2 ; struct ceph_fs_client *tmp___3 ; { inode = dentry->d_inode; tmp = ceph_inode(inode); ci = tmp; err = ceph_do_getattr(inode, 341); if (err == 0) { generic_fillattr(inode, stat); tmp___0 = ceph_translate_ino(inode->i_sb, inode->i_ino); stat->ino = (u64 )tmp___0; tmp___2 = ceph_snap(inode); if (tmp___2 != 0xfffffffffffffffeULL) { tmp___1 = ceph_snap(inode); stat->dev = (dev_t )tmp___1; } else { stat->dev = 0U; } if (((int )inode->i_mode & 61440) == 16384) { tmp___3 = ceph_sb_to_client(inode->i_sb); if (((tmp___3->mount_options)->flags & 32) != 0) { stat->size = (loff_t )ci->i_rbytes; } else { stat->size = (loff_t )(ci->i_files + ci->i_subdirs); } stat->blocks = 0ULL; stat->blksize = 65536UL; } else { } } else { } return (err); } } void ldv_main1_sequence_infinite_withcheck_stateful(void) { struct inode *var_group1 ; int var_ceph_permission_29_p1 ; struct dentry *var_group2 ; struct iattr *var_group3 ; struct vfsmount *var_group4 ; struct kstat *var_ceph_getattr_30_p2 ; struct nameidata *var_group5 ; int tmp ; int tmp___0 ; { LDV_IN_INTERRUPT = 1; ldv_initialize(); goto ldv_30271; ldv_30270: tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ldv_handler_precall(); ceph_permission(var_group1, var_ceph_permission_29_p1); goto ldv_30265; case 1: ldv_handler_precall(); ceph_setattr(var_group2, var_group3); goto ldv_30265; case 2: ldv_handler_precall(); ceph_getattr(var_group4, var_group2, var_ceph_getattr_30_p2); goto ldv_30265; case 3: ldv_handler_precall(); ceph_sym_follow_link(var_group2, var_group5); goto ldv_30265; default: ; goto ldv_30265; } ldv_30265: ; ldv_30271: tmp___0 = __VERIFIER_nondet_int(); if (tmp___0 != 0) { goto ldv_30270; } else { } ldv_check_final_state(); return; } } void ldv_mutex_lock_15(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_16(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_17(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_18(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_19(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_i_fragtree_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_20(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_i_fragtree_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_21(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_i_fragtree_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_22(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_i_fragtree_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_23(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_i_fragtree_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_24(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_i_fragtree_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_25(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_i_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_26(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_i_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } __inline static void set_bit(unsigned int nr , unsigned long volatile *addr ) { { __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; bts %1,%0": "+m" (*((long volatile *)addr)): "Ir" (nr): "memory"); return; } } __inline static void clear_bit(int nr , unsigned long volatile *addr ) { { __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; btr %1,%0": "+m" (*((long volatile *)addr)): "Ir" (nr)); return; } } extern void might_fault(void) ; extern int snprintf(char * , size_t , char const * , ...) ; __inline static void list_add_tail(struct list_head *new , struct list_head *head ) { { __list_add(new, head->prev, head); return; } } __inline static void list_move_tail(struct list_head *list , struct list_head *head ) { { __list_del_entry(list); list_add_tail(list, head); return; } } __inline static int atomic_read(atomic_t const *v ) { { return ((int )*((int volatile *)(& v->counter))); } } void ldv_mutex_unlock_40(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_42(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_44(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_46(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_39(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_41(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_43(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_45(struct mutex *ldv_func_arg1 ) ; extern void wait_for_completion(struct completion * ) ; extern unsigned long wait_for_completion_timeout(struct completion * , unsigned long ) ; extern void d_set_d_op(struct dentry * , struct dentry_operations const * ) ; extern struct dentry *d_find_any_alias(struct inode * ) ; __inline static void d_add(struct dentry *entry , struct inode *inode ) { { d_instantiate(entry, inode); d_rehash(entry); return; } } __inline static void kref_get(struct kref *kref ) { int __ret_warn_on ; int tmp ; long tmp___0 ; { tmp = atomic_read((atomic_t const *)(& kref->refcount)); __ret_warn_on = tmp == 0; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("include/linux/kref.h", 42); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); atomic_inc(& kref->refcount); return; } } __inline static ino_t parent_ino(struct dentry *dentry ) { ino_t res ; { spin_lock(& dentry->d_lock); res = ((dentry->d_parent)->d_inode)->i_ino; spin_unlock(& dentry->d_lock); return (res); } } extern unsigned long _copy_to_user(void * , void const * , unsigned int ) ; __inline static int copy_to_user(void *dst , void const *src , unsigned int size ) { unsigned long tmp ; { might_fault(); tmp = _copy_to_user(dst, src, size); return ((int )tmp); } } __inline static int ceph_frag_is_rightmost(__u32 f ) { __u32 tmp ; __u32 tmp___0 ; { tmp = ceph_frag_value(f); tmp___0 = ceph_frag_mask(f); return (tmp == tmp___0); } } __inline static __u32 ceph_frag_next(__u32 f ) { __u32 tmp ; __u32 tmp___0 ; __u32 tmp___1 ; __u32 tmp___2 ; { tmp = ceph_frag_value(f); tmp___0 = ceph_frag_bits(f); tmp___1 = ceph_frag_bits(f); tmp___2 = ceph_frag_make(tmp___1, tmp + (__u32 )(16777216 >> (int )tmp___0)); return (tmp___2); } } extern unsigned int ceph_str_hash(int , char const * , unsigned int ) ; void ceph_dir_clear_complete(struct inode *inode ) ; int __ceph_caps_used(struct ceph_inode_info *ci ) ; __inline static int __ceph_caps_wanted(struct ceph_inode_info *ci ) { int w ; int tmp ; int tmp___0 ; { tmp = __ceph_caps_file_wanted(ci); tmp___0 = __ceph_caps_used(ci); w = tmp | tmp___0; if ((w & 8192) != 0) { w = w | 512; } else { } return (w); } } int ceph_open(struct inode *inode , struct file *file ) ; int ceph_atomic_open(struct inode *dir , struct dentry *dentry , struct file *file , unsigned int flags , umode_t mode , int *opened ) ; int ceph_release(struct inode *inode , struct file *file ) ; struct dentry_operations const ceph_snap_dentry_ops ; struct dentry_operations const ceph_snapdir_dentry_ops ; int ceph_handle_notrace_create(struct inode *dir , struct dentry *dentry ) ; int ceph_handle_snapdir(struct ceph_mds_request *req , struct dentry *dentry , int err ) ; struct dentry *ceph_finish_lookup(struct ceph_mds_request *req , struct dentry *dentry , int err ) ; void ceph_dentry_lru_add(struct dentry *dn ) ; void ceph_dentry_lru_del(struct dentry *dn ) ; unsigned int ceph_dentry_hash(struct inode *dir , struct dentry *dn ) ; long ceph_ioctl(struct file *file , unsigned int cmd , unsigned long arg ) ; void ceph_put_mds_session(struct ceph_mds_session *s ) ; __inline static void ceph_mdsc_get_request(struct ceph_mds_request *req ) { { kref_get(& req->r_kref); return; } } void ceph_mdsc_lease_send_msg(struct ceph_mds_session *session , struct inode *inode , struct dentry *dentry , char action , u32 seq ) ; int ceph_init_dentry(struct dentry *dentry ) { struct ceph_dentry_info *di ; void *tmp ; u64 tmp___0 ; u64 tmp___1 ; { if ((unsigned long )dentry->d_fsdata != (unsigned long )((void *)0)) { return (0); } else { } tmp = kmem_cache_alloc(ceph_dentry_cachep, 32848U); di = (struct ceph_dentry_info *)tmp; if ((unsigned long )di == (unsigned long )((struct ceph_dentry_info *)0)) { return (-12); } else { } spin_lock(& dentry->d_lock); if ((unsigned long )dentry->d_fsdata != (unsigned long )((void *)0)) { kmem_cache_free(ceph_dentry_cachep, (void *)di); goto out_unlock; } else { } tmp___1 = ceph_snap((dentry->d_parent)->d_inode); if (tmp___1 == 0xfffffffffffffffeULL) { d_set_d_op(dentry, & ceph_dentry_ops); } else { tmp___0 = ceph_snap((dentry->d_parent)->d_inode); if (tmp___0 == 0xffffffffffffffffULL) { d_set_d_op(dentry, & ceph_snapdir_dentry_ops); } else { d_set_d_op(dentry, & ceph_snap_dentry_ops); } } di->dentry = dentry; di->lease_session = 0; dentry->d_time = jiffies; __asm__ volatile ("mfence": : : "memory"); dentry->d_fsdata = (void *)di; ceph_dentry_lru_add(dentry); out_unlock: spin_unlock(& dentry->d_lock); return (0); } } struct inode *ceph_get_dentry_parent_inode(struct dentry *dentry ) { struct inode *inode ; { inode = 0; if ((unsigned long )dentry == (unsigned long )((struct dentry *)0)) { return (0); } else { } spin_lock(& dentry->d_lock); if ((unsigned long )dentry->d_parent != (unsigned long )dentry) { inode = (dentry->d_parent)->d_inode; ihold(inode); } else { } spin_unlock(& dentry->d_lock); return (inode); } } static unsigned int fpos_frag(loff_t p ) { { return ((unsigned int )(p >> 32)); } } static unsigned int fpos_off(loff_t p ) { { return ((unsigned int )p); } } static int __dcache_readdir(struct file *filp , void *dirent , int (*filldir)(void * , char const * , int , loff_t , u64 , unsigned int ) ) { struct ceph_file_info *fi ; struct dentry *parent ; struct inode *dir ; struct list_head *p ; struct dentry *dentry ; struct dentry *last ; struct ceph_dentry_info *di ; int err ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; int tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; struct ceph_dentry_info *tmp___4 ; struct list_head const *__mptr ; struct _ddebug descriptor___1 ; int tmp___5 ; char const *tmp___6 ; long tmp___7 ; raw_spinlock_t *tmp___8 ; int tmp___9 ; u64 tmp___10 ; u64 tmp___11 ; struct _ddebug descriptor___2 ; int tmp___12 ; char const *tmp___13 ; long tmp___14 ; struct list_head const *__mptr___0 ; struct _ddebug descriptor___3 ; char const *tmp___15 ; long tmp___16 ; ino_t tmp___17 ; struct _ddebug descriptor___4 ; char const *tmp___18 ; long tmp___19 ; bool tmp___20 ; int tmp___21 ; { fi = (struct ceph_file_info *)filp->private_data; parent = filp->f_path.dentry; dir = parent->d_inode; err = 0; last = fi->dentry; fi->dentry = 0; descriptor.modname = "ceph"; descriptor.function = "__dcache_readdir"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __dcache_readdir %p at %llu (last %p)\n"; descriptor.lineno = 202U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __dcache_readdir %p at %llu (last %p)\n", 3, (char *)" ", tmp, 202, dir, filp->f_pos, last); } else { } spin_lock(& parent->d_lock); if (filp->f_pos == 2LL || (unsigned long )last == (unsigned long )((struct dentry *)0)) { goto _L; } else { tmp___4 = ceph_dentry(last); if ((unsigned long long )filp->f_pos < tmp___4->offset) { _L: /* CIL Label */ tmp___1 = list_empty((struct list_head const *)(& parent->d_subdirs)); if (tmp___1 != 0) { goto out_unlock; } else { } p = parent->d_subdirs.prev; descriptor___0.modname = "ceph"; descriptor___0.function = "__dcache_readdir"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : initial p %p/%p\n"; descriptor___0.lineno = 212U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : initial p %p/%p\n", 3, (char *)" ", tmp___2, 212, p->prev, p->next); } else { } } else { p = last->d_u.d_child.prev; } } more: __mptr = (struct list_head const *)p; dentry = (struct dentry *)__mptr + 0xffffffffffffff28UL; di = ceph_dentry(dentry); ldv_28881: descriptor___1.modname = "ceph"; descriptor___1.function = "__dcache_readdir"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : p %p/%p %s d_subdirs %p/%p\n"; descriptor___1.lineno = 223U; descriptor___1.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___5 = d_unhashed(dentry); tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : p %p/%p %s d_subdirs %p/%p\n", 3, (char *)" ", tmp___6, 223, p->prev, p->next, tmp___5 != 0 ? (char *)"!hashed" : (char *)"hashed", parent->d_subdirs.prev, parent->d_subdirs.next); } else { } if ((unsigned long )(& parent->d_subdirs) == (unsigned long )p) { fi->flags = (int )fi->flags | 2; goto out_unlock; } else { } tmp___8 = spinlock_check(& dentry->d_lock); _raw_spin_lock_nested(tmp___8, 1); tmp___9 = d_unhashed(dentry); if (tmp___9 == 0 && (unsigned long )dentry->d_inode != (unsigned long )((struct inode *)0)) { tmp___10 = ceph_snap(dentry->d_inode); if (tmp___10 != 0xffffffffffffffffULL) { tmp___11 = ceph_ino(dentry->d_inode); if (tmp___11 != 2ULL) { if ((unsigned long long )filp->f_pos <= di->offset) { goto ldv_28877; } else { } } else { } } else { } } else { } descriptor___2.modname = "ceph"; descriptor___2.function = "__dcache_readdir"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : skipping %p %.*s at %llu (%llu)%s%s\n"; descriptor___2.lineno = 237U; descriptor___2.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___12 = d_unhashed(dentry); tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : skipping %p %.*s at %llu (%llu)%s%s\n", 3, (char *)" ", tmp___13, 237, dentry, dentry->d_name.ldv_11489.ldv_11487.len, dentry->d_name.name, di->offset, filp->f_pos, tmp___12 != 0 ? (char *)" unhashed" : (char *)"", (unsigned long )dentry->d_inode == (unsigned long )((struct inode *)0) ? (char *)" null" : (char *)""); } else { } spin_unlock(& dentry->d_lock); p = p->prev; __mptr___0 = (struct list_head const *)p; dentry = (struct dentry *)__mptr___0 + 0xffffffffffffff28UL; di = ceph_dentry(dentry); goto ldv_28881; ldv_28877: dget_dlock(dentry); spin_unlock(& dentry->d_lock); spin_unlock(& parent->d_lock); descriptor___3.modname = "ceph"; descriptor___3.function = "__dcache_readdir"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : %llu (%llu) dentry %p %.*s %p\n"; descriptor___3.lineno = 249U; descriptor___3.flags = 0U; tmp___16 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___16 != 0L) { tmp___15 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : %llu (%llu) dentry %p %.*s %p\n", 3, (char *)" ", tmp___15, 249, di->offset, filp->f_pos, dentry, dentry->d_name.ldv_11489.ldv_11487.len, dentry->d_name.name, dentry->d_inode); } else { } filp->f_pos = (loff_t )di->offset; tmp___17 = ceph_translate_ino(dentry->d_sb, (dentry->d_inode)->i_ino); err = (*filldir)(dirent, (char const *)dentry->d_name.name, (int )dentry->d_name.ldv_11489.ldv_11487.len, (loff_t )di->offset, (u64 )tmp___17, (unsigned int )((int )(dentry->d_inode)->i_mode >> 12)); if ((unsigned long )last != (unsigned long )((struct dentry *)0)) { if (err < 0) { fi->dentry = last; fi->next_offset = di->offset; } else { dput(last); } } else { } last = dentry; if (err < 0) { goto out; } else { } filp->f_pos = filp->f_pos + 1LL; tmp___20 = ceph_dir_test_complete(dir); if (tmp___20) { tmp___21 = 0; } else { tmp___21 = 1; } if (tmp___21) { descriptor___4.modname = "ceph"; descriptor___4.function = "__dcache_readdir"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : lost D_COMPLETE on %p; falling back to mds\n"; descriptor___4.lineno = 274U; descriptor___4.flags = 0U; tmp___19 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___19 != 0L) { tmp___18 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : lost D_COMPLETE on %p; falling back to mds\n", 3, (char *)" ", tmp___18, 274, dir); } else { } err = -11; goto out; } else { } spin_lock(& parent->d_lock); p = p->prev; goto more; out_unlock: spin_unlock(& parent->d_lock); out: ; if ((unsigned long )last != (unsigned long )((struct dentry *)0)) { dput(last); } else { } return (err); } } static int note_last_dentry(struct ceph_file_info *fi , char const *name , int len ) { void *tmp ; size_t __len ; void *__ret ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { kfree((void const *)fi->last_name); tmp = kmalloc((size_t )(len + 1), 80U); fi->last_name = (char *)tmp; if ((unsigned long )fi->last_name == (unsigned long )((char *)0)) { return (-12); } else { } __len = (size_t )len; __ret = memcpy((void *)fi->last_name, (void const *)name, __len); *(fi->last_name + (unsigned long )len) = 0; descriptor.modname = "ceph"; descriptor.function = "note_last_dentry"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : note_last_dentry \'%s\'\n"; descriptor.lineno = 306U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : note_last_dentry \'%s\'\n", 3, (char *)" ", tmp___0, 306, fi->last_name); } else { } return (0); } } static int ceph_readdir(struct file *filp , void *dirent , int (*filldir)(void * , char const * , int , loff_t , u64 , unsigned int ) ) { struct ceph_file_info *fi ; struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp___0 ; struct ceph_mds_client *mdsc ; unsigned int frag ; unsigned int tmp___1 ; int off ; unsigned int tmp___2 ; int err ; u32 ftype ; struct ceph_mds_reply_info_parsed *rinfo ; int max_entries ; int max_bytes ; struct _ddebug descriptor ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___0 ; char const *tmp___5 ; long tmp___6 ; ino_t tmp___7 ; loff_t tmp___8 ; int tmp___9 ; ino_t ino ; ino_t tmp___10 ; struct _ddebug descriptor___1 ; char const *tmp___11 ; long tmp___12 ; ino_t tmp___13 ; loff_t tmp___14 ; int tmp___15 ; u64 tmp___16 ; bool tmp___17 ; int tmp___18 ; struct ceph_mds_request *req ; int op ; u64 tmp___19 ; struct ceph_inode_info *tmp___20 ; struct _ddebug descriptor___2 ; struct ceph_inode_info *tmp___21 ; struct ceph_inode_info *tmp___22 ; char const *tmp___23 ; long tmp___24 ; long tmp___25 ; long tmp___26 ; struct _ddebug descriptor___3 ; char const *tmp___27 ; long tmp___28 ; struct _ddebug descriptor___4 ; char const *tmp___29 ; long tmp___30 ; int tmp___31 ; struct _ddebug descriptor___5 ; char const *tmp___32 ; long tmp___33 ; u64 pos ; loff_t tmp___34 ; struct ceph_mds_reply_inode *in ; struct ceph_vino vino ; ino_t ino___0 ; struct _ddebug descriptor___6 ; char const *tmp___35 ; long tmp___36 ; long tmp___37 ; struct _ddebug descriptor___7 ; char const *tmp___38 ; long tmp___39 ; ino_t tmp___40 ; int tmp___41 ; struct _ddebug descriptor___8 ; char const *tmp___42 ; long tmp___43 ; int tmp___44 ; struct _ddebug descriptor___9 ; char const *tmp___45 ; long tmp___46 ; { fi = (struct ceph_file_info *)filp->private_data; inode = (filp->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_inode_to_client(inode); fsc = tmp___0; mdsc = fsc->mdsc; tmp___1 = fpos_frag(filp->f_pos); frag = tmp___1; tmp___2 = fpos_off(filp->f_pos); off = (int )tmp___2; max_entries = (fsc->mount_options)->max_readdir; max_bytes = (fsc->mount_options)->max_readdir_bytes; descriptor.modname = "ceph"; descriptor.function = "ceph_readdir"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : readdir %p filp %p frag %u off %u\n"; descriptor.lineno = 325U; descriptor.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : readdir %p filp %p frag %u off %u\n", 3, (char *)" ", tmp___3, 325, inode, filp, frag, off); } else { } if (((int )fi->flags & 2) != 0) { return (0); } else { } if (filp->f_pos == 0LL) { fi->dir_release_count = ci->i_release_count; descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_readdir"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : readdir off 0 -> \'.\'\n"; descriptor___0.lineno = 335U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : readdir off 0 -> \'.\'\n", 3, (char *)" ", tmp___5, 335); } else { } tmp___7 = ceph_translate_ino(inode->i_sb, inode->i_ino); tmp___8 = ceph_make_fpos(0U, 0U); tmp___9 = (*filldir)(dirent, ".", 1, tmp___8, (u64 )tmp___7, (unsigned int )((int )inode->i_mode >> 12)); if (tmp___9 < 0) { return (0); } else { } filp->f_pos = 1LL; off = 1; } else { } if (filp->f_pos == 1LL) { tmp___10 = parent_ino(filp->f_path.dentry); ino = tmp___10; descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_readdir"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : readdir off 1 -> \'..\'\n"; descriptor___1.lineno = 345U; descriptor___1.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : readdir off 1 -> \'..\'\n", 3, (char *)" ", tmp___11, 345); } else { } tmp___13 = ceph_translate_ino(inode->i_sb, ino); tmp___14 = ceph_make_fpos(0U, 1U); tmp___15 = (*filldir)(dirent, "..", 2, tmp___14, (u64 )tmp___13, (unsigned int )((int )inode->i_mode >> 12)); if (tmp___15 < 0) { return (0); } else { } filp->f_pos = 2LL; off = 2; } else { } spin_lock(& ci->i_ceph_lock); if ((filp->f_pos == 2LL || (unsigned long )fi->dentry != (unsigned long )((struct dentry *)0)) && ((fsc->mount_options)->flags & 128) == 0) { tmp___16 = ceph_snap(inode); if (tmp___16 != 0xffffffffffffffffULL) { tmp___17 = ceph_dir_test_complete(inode); if ((int )tmp___17) { tmp___18 = __ceph_caps_issued_mask(ci, 256, 1); if (tmp___18 != 0) { spin_unlock(& ci->i_ceph_lock); err = __dcache_readdir(filp, dirent, filldir); if (err != -11) { return (err); } else { } } else { spin_unlock(& ci->i_ceph_lock); } } else { spin_unlock(& ci->i_ceph_lock); } } else { spin_unlock(& ci->i_ceph_lock); } } else { spin_unlock(& ci->i_ceph_lock); } if ((unsigned long )fi->dentry != (unsigned long )((struct dentry *)0)) { err = note_last_dentry(fi, (char const *)(fi->dentry)->d_name.name, (int )(fi->dentry)->d_name.ldv_11489.ldv_11487.len); if (err != 0) { return (err); } else { } dput(fi->dentry); fi->dentry = 0; } else { } more: ; if (fi->frag != frag || (unsigned long )fi->last_readdir == (unsigned long )((struct ceph_mds_request *)0)) { tmp___19 = ceph_snap(inode); op = tmp___19 == 0xffffffffffffffffULL ? 1026 : 773; if ((unsigned long )fi->last_readdir != (unsigned long )((struct ceph_mds_request *)0)) { ceph_mdsc_put_request(fi->last_readdir); fi->last_readdir = 0; } else { } tmp___20 = ceph_inode(inode); frag = ceph_choose_frag(tmp___20, frag, 0, 0); descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_readdir"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : readdir fetching %llx.%llx frag %x offset \'%s\'\n"; descriptor___2.lineno = 396U; descriptor___2.flags = 0U; tmp___24 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___24 != 0L) { tmp___21 = ceph_inode(inode); tmp___22 = ceph_inode(inode); tmp___23 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : readdir fetching %llx.%llx frag %x offset \'%s\'\n", 3, (char *)" ", tmp___23, 396, tmp___22->i_vino.ino, tmp___21->i_vino.snap, frag, fi->last_name); } else { } req = ceph_mdsc_create_request(mdsc, op, 2); tmp___26 = IS_ERR((void const *)req); if (tmp___26 != 0L) { tmp___25 = PTR_ERR((void const *)req); return ((int )tmp___25); } else { } req->r_inode = inode; ihold(inode); req->r_dentry = dget(filp->f_path.dentry); req->r_direct_mode = 2; req->r_direct_hash = ceph_frag_value(frag); req->r_direct_is_hash = 1; req->r_path2 = kstrdup((char const *)fi->last_name, 80U); req->r_readdir_offset = (u32 )fi->next_offset; req->r_args.readdir.frag = frag; req->r_args.readdir.max_entries = (unsigned int )max_entries; req->r_args.readdir.max_bytes = (unsigned int )max_bytes; req->r_num_caps = max_entries + 1; err = ceph_mdsc_do_request(mdsc, 0, req); if (err < 0) { ceph_mdsc_put_request(req); return (err); } else { } descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_readdir"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : readdir got and parsed readdir result=%d on frag %x, end=%d, complete=%d\n"; descriptor___3.lineno = 421U; descriptor___3.flags = 0U; tmp___28 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___28 != 0L) { tmp___27 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : readdir got and parsed readdir result=%d on frag %x, end=%d, complete=%d\n", 3, (char *)" ", tmp___27, 421, err, frag, (int )req->r_reply_info.ldv_29667.ldv_29666.dir_end, (int )req->r_reply_info.ldv_29667.ldv_29666.dir_complete); } else { } if (! req->r_did_prepopulate) { descriptor___4.modname = "ceph"; descriptor___4.function = "ceph_readdir"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : readdir !did_prepopulate"; descriptor___4.lineno = 424U; descriptor___4.flags = 0U; tmp___30 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___30 != 0L) { tmp___29 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : readdir !did_prepopulate", 3, (char *)" ", tmp___29, 424); } else { } fi->dir_release_count = fi->dir_release_count - 1UL; } else { } fi->offset = (unsigned int )fi->next_offset; fi->last_readdir = req; if ((unsigned int )req->r_reply_info.ldv_29667.ldv_29666.dir_end != 0U) { kfree((void const *)fi->last_name); fi->last_name = 0; tmp___31 = ceph_frag_is_rightmost(frag); if (tmp___31 != 0) { fi->next_offset = 2ULL; } else { fi->next_offset = 0ULL; } } else { rinfo = & req->r_reply_info; err = note_last_dentry(fi, (char const *)*(rinfo->ldv_29667.ldv_29666.dir_dname + ((unsigned long )rinfo->ldv_29667.ldv_29666.dir_nr + 0xffffffffffffffffUL)), (int )*(rinfo->ldv_29667.ldv_29666.dir_dname_len + ((unsigned long )rinfo->ldv_29667.ldv_29666.dir_nr + 0xffffffffffffffffUL))); if (err != 0) { return (err); } else { } fi->next_offset = fi->next_offset + (u64 )rinfo->ldv_29667.ldv_29666.dir_nr; } } else { } rinfo = & (fi->last_readdir)->r_reply_info; descriptor___5.modname = "ceph"; descriptor___5.function = "ceph_readdir"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : readdir frag %x num %d off %d chunkoff %d\n"; descriptor___5.lineno = 452U; descriptor___5.flags = 0U; tmp___33 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___33 != 0L) { tmp___32 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : readdir frag %x num %d off %d chunkoff %d\n", 3, (char *)" ", tmp___32, 452, frag, rinfo->ldv_29667.ldv_29666.dir_nr, off, fi->offset); } else { } goto ldv_28932; ldv_28931: tmp___34 = ceph_make_fpos(frag, (unsigned int )off); pos = (u64 )tmp___34; in = (rinfo->ldv_29667.ldv_29666.dir_in + (unsigned long )((unsigned int )off - fi->offset))->in; descriptor___6.modname = "ceph"; descriptor___6.function = "ceph_readdir"; descriptor___6.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___6.format = "%.*s %12.12s:%-4d : readdir off %d (%d/%d) -> %lld \'%.*s\' %p\n"; descriptor___6.lineno = 463U; descriptor___6.flags = 0U; tmp___36 = ldv__builtin_expect((long )descriptor___6.flags & 1L, 0L); if (tmp___36 != 0L) { tmp___35 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___6, "ceph: %.*s %12.12s:%-4d : readdir off %d (%d/%d) -> %lld \'%.*s\' %p\n", 3, (char *)" ", tmp___35, 463, off, (unsigned int )off - fi->offset, rinfo->ldv_29667.ldv_29666.dir_nr, pos, *(rinfo->ldv_29667.ldv_29666.dir_dname_len + (unsigned long )((unsigned int )off - fi->offset)), *(rinfo->ldv_29667.ldv_29666.dir_dname + (unsigned long )((unsigned int )off - fi->offset)), in); } else { } tmp___37 = ldv__builtin_expect((unsigned long )in == (unsigned long )((struct ceph_mds_reply_inode *)0), 0L); if (tmp___37 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"), "i" (464), "i" (12UL)); ldv_28929: ; goto ldv_28929; } else { } ftype = in->mode >> 12; vino.ino = in->ino; vino.snap = in->snapid; ino___0 = ceph_vino_to_ino(vino); tmp___40 = ceph_translate_ino(inode->i_sb, ino___0); tmp___41 = (*filldir)(dirent, (char const *)*(rinfo->ldv_29667.ldv_29666.dir_dname + (unsigned long )((unsigned int )off - fi->offset)), (int )*(rinfo->ldv_29667.ldv_29666.dir_dname_len + (unsigned long )((unsigned int )off - fi->offset)), (loff_t )pos, (u64 )tmp___40, ftype); if (tmp___41 < 0) { descriptor___7.modname = "ceph"; descriptor___7.function = "ceph_readdir"; descriptor___7.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___7.format = "%.*s %12.12s:%-4d : filldir stopping us...\n"; descriptor___7.lineno = 474U; descriptor___7.flags = 0U; tmp___39 = ldv__builtin_expect((long )descriptor___7.flags & 1L, 0L); if (tmp___39 != 0L) { tmp___38 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___7, "ceph: %.*s %12.12s:%-4d : filldir stopping us...\n", 3, (char *)" ", tmp___38, 474); } else { } return (0); } else { } off = off + 1; filp->f_pos = (loff_t )(pos + 1ULL); ldv_28932: ; if ((unsigned int )off >= fi->offset && (unsigned int )off - fi->offset < (unsigned int )rinfo->ldv_29667.ldv_29666.dir_nr) { goto ldv_28931; } else { } if ((unsigned long )fi->last_name != (unsigned long )((char *)0)) { ceph_mdsc_put_request(fi->last_readdir); fi->last_readdir = 0; goto more; } else { } tmp___44 = ceph_frag_is_rightmost(frag); if (tmp___44 == 0) { frag = ceph_frag_next(frag); off = 0; filp->f_pos = ceph_make_fpos(frag, (unsigned int )off); descriptor___8.modname = "ceph"; descriptor___8.function = "ceph_readdir"; descriptor___8.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___8.format = "%.*s %12.12s:%-4d : readdir next frag is %x\n"; descriptor___8.lineno = 492U; descriptor___8.flags = 0U; tmp___43 = ldv__builtin_expect((long )descriptor___8.flags & 1L, 0L); if (tmp___43 != 0L) { tmp___42 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___8, "ceph: %.*s %12.12s:%-4d : readdir next frag is %x\n", 3, (char *)" ", tmp___42, 492, frag); } else { } goto more; } else { } fi->flags = (int )fi->flags | 2; spin_lock(& ci->i_ceph_lock); if (ci->i_release_count == fi->dir_release_count) { ceph_dir_set_complete(inode); ci->i_max_offset = (u64 )filp->f_pos; } else { } spin_unlock(& ci->i_ceph_lock); descriptor___9.modname = "ceph"; descriptor___9.function = "ceph_readdir"; descriptor___9.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___9.format = "%.*s %12.12s:%-4d : readdir %p filp %p done.\n"; descriptor___9.lineno = 509U; descriptor___9.flags = 0U; tmp___46 = ldv__builtin_expect((long )descriptor___9.flags & 1L, 0L); if (tmp___46 != 0L) { tmp___45 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___9, "ceph: %.*s %12.12s:%-4d : readdir %p filp %p done.\n", 3, (char *)" ", tmp___45, 509, inode, filp); } else { } return (0); } } static void reset_readdir(struct ceph_file_info *fi ) { { if ((unsigned long )fi->last_readdir != (unsigned long )((struct ceph_mds_request *)0)) { ceph_mdsc_put_request(fi->last_readdir); fi->last_readdir = 0; } else { } kfree((void const *)fi->last_name); fi->last_name = 0; fi->next_offset = 2ULL; if ((unsigned long )fi->dentry != (unsigned long )((struct dentry *)0)) { dput(fi->dentry); fi->dentry = 0; } else { } fi->flags = (int )fi->flags & -3; return; } } static loff_t ceph_dir_llseek(struct file *file , loff_t offset , int whence ) { struct ceph_file_info *fi ; struct inode *inode ; loff_t old_offset ; loff_t retval ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; unsigned int tmp___1 ; unsigned int tmp___2 ; unsigned int tmp___3 ; { fi = (struct ceph_file_info *)file->private_data; inode = (file->f_mapping)->host; old_offset = offset; ldv_mutex_lock_43(& inode->i_mutex); retval = -22LL; switch (whence) { case 2: offset = (inode->i_size + 2LL) + offset; goto ldv_28949; case 1: offset = file->f_pos + offset; case 0: ; goto ldv_28949; default: ; goto out; } ldv_28949: ; if (offset >= 0LL && (inode->i_sb)->s_maxbytes >= offset) { if (file->f_pos != offset) { file->f_pos = offset; file->f_version = 0ULL; fi->flags = (int )fi->flags & -3; } else { } retval = offset; if (offset == 0LL) { goto _L; } else { tmp___1 = fpos_frag(offset); tmp___2 = fpos_frag(old_offset); if (tmp___1 != tmp___2) { goto _L; } else { tmp___3 = fpos_off(offset); if (tmp___3 < fi->offset) { _L: /* CIL Label */ descriptor.modname = "ceph"; descriptor.function = "ceph_dir_llseek"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : dir_llseek dropping %p content\n"; descriptor.lineno = 565U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : dir_llseek dropping %p content\n", 3, (char *)" ", tmp, 565, file); } else { } reset_readdir(fi); } else { } } } if (offset > old_offset) { fi->dir_release_count = fi->dir_release_count - 1UL; } else { } } else { } out: ldv_mutex_unlock_44(& inode->i_mutex); return (retval); } } int ceph_handle_snapdir(struct ceph_mds_request *req , struct dentry *dentry , int err ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct inode *parent ; struct inode *inode ; struct inode *tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; long tmp___4 ; u64 tmp___5 ; int tmp___6 ; { tmp = ceph_sb_to_client(dentry->d_sb); fsc = tmp; parent = (dentry->d_parent)->d_inode; if (err == -2) { tmp___5 = ceph_snap(parent); if (tmp___5 == 0xfffffffffffffffeULL) { tmp___6 = strcmp((char const *)dentry->d_name.name, (char const *)(fsc->mount_options)->snapdir_name); if (tmp___6 == 0) { tmp___0 = ceph_get_snapdir(parent); inode = tmp___0; descriptor.modname = "ceph"; descriptor.function = "ceph_handle_snapdir"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ENOENT on snapdir %p \'%.*s\', linking to snapdir %p\n"; descriptor.lineno = 594U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ENOENT on snapdir %p \'%.*s\', linking to snapdir %p\n", 3, (char *)" ", tmp___1, 594, dentry, dentry->d_name.ldv_11489.ldv_11487.len, dentry->d_name.name, inode); } else { } tmp___3 = d_unhashed(dentry); tmp___4 = ldv__builtin_expect(tmp___3 == 0, 0L); if (tmp___4 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"), "i" (595), "i" (12UL)); ldv_28966: ; goto ldv_28966; } else { } d_add(dentry, inode); err = 0; } else { } } else { } } else { } return (err); } } struct dentry *ceph_finish_lookup(struct ceph_mds_request *req , struct dentry *dentry , int err ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; void *tmp___1 ; { if (err == -2) { err = 0; if ((unsigned int )(req->r_reply_info.head)->is_dentry == 0U) { descriptor.modname = "ceph"; descriptor.function = "ceph_finish_lookup"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ENOENT and no trace, dentry %p inode %p\n"; descriptor.lineno = 621U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ENOENT and no trace, dentry %p inode %p\n", 3, (char *)" ", tmp, 621, dentry, dentry->d_inode); } else { } if ((unsigned long )dentry->d_inode != (unsigned long )((struct inode *)0)) { d_drop(dentry); err = -2; } else { d_add(dentry, 0); } } else { } } else { } if (err != 0) { tmp___1 = ERR_PTR((long )err); dentry = (struct dentry *)tmp___1; } else if ((unsigned long )req->r_dentry != (unsigned long )dentry) { dentry = dget(req->r_dentry); } else { dentry = 0; } return (dentry); } } static int is_root_ceph_dentry(struct inode *inode , struct dentry *dentry ) { u64 tmp ; int tmp___0 ; int tmp___1 ; { tmp = ceph_ino(inode); if (tmp == 1ULL) { tmp___0 = strncmp((char const *)dentry->d_name.name, ".ceph", 5UL); if (tmp___0 == 0) { tmp___1 = 1; } else { tmp___1 = 0; } } else { tmp___1 = 0; } return (tmp___1); } } static struct dentry *ceph_lookup(struct inode *dir , struct dentry *dentry , unsigned int flags ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; int op ; int err ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; void *tmp___2 ; void *tmp___3 ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___4 ; struct ceph_dentry_info *di ; struct ceph_dentry_info *tmp___5 ; struct _ddebug descriptor___0 ; char const *tmp___6 ; long tmp___7 ; struct _ddebug descriptor___1 ; char const *tmp___8 ; long tmp___9 ; int tmp___10 ; int tmp___11 ; bool tmp___12 ; int tmp___13 ; u64 tmp___14 ; void *tmp___15 ; long tmp___16 ; struct _ddebug descriptor___2 ; char const *tmp___17 ; long tmp___18 ; { tmp = ceph_sb_to_client(dir->i_sb); fsc = tmp; mdsc = fsc->mdsc; descriptor.modname = "ceph"; descriptor.function = "ceph_lookup"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : lookup %p dentry %p \'%.*s\'\n"; descriptor.lineno = 659U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : lookup %p dentry %p \'%.*s\'\n", 3, (char *)" ", tmp___0, 659, dir, dentry, dentry->d_name.ldv_11489.ldv_11487.len, dentry->d_name.name); } else { } if (dentry->d_name.ldv_11489.ldv_11487.len > 255U) { tmp___2 = ERR_PTR(-36L); return ((struct dentry *)tmp___2); } else { } err = ceph_init_dentry(dentry); if (err < 0) { tmp___3 = ERR_PTR((long )err); return ((struct dentry *)tmp___3); } else { } if ((unsigned long )dentry->d_inode == (unsigned long )((struct inode *)0)) { tmp___4 = ceph_inode(dir); ci = tmp___4; tmp___5 = ceph_dentry(dentry); di = tmp___5; spin_lock(& ci->i_ceph_lock); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_lookup"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : dir %p flags are %d\n"; descriptor___0.lineno = 674U; descriptor___0.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : dir %p flags are %d\n", 3, (char *)" ", tmp___6, 674, dir, ci->i_ceph_flags); } else { } tmp___10 = strncmp((char const *)dentry->d_name.name, (char const *)(fsc->mount_options)->snapdir_name, (__kernel_size_t )dentry->d_name.ldv_11489.ldv_11487.len); if (tmp___10 != 0) { tmp___11 = is_root_ceph_dentry(dir, dentry); if (tmp___11 == 0) { tmp___12 = ceph_dir_test_complete(dir); if ((int )tmp___12) { tmp___13 = __ceph_caps_issued_mask(ci, 256, 1); if (tmp___13 != 0) { spin_unlock(& ci->i_ceph_lock); descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_lookup"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : dir %p complete, -ENOENT\n"; descriptor___1.lineno = 682U; descriptor___1.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : dir %p complete, -ENOENT\n", 3, (char *)" ", tmp___8, 682, dir); } else { } d_add(dentry, 0); di->lease_shared_gen = ci->i_shared_gen; return (0); } else { } } else { } } else { } } else { } spin_unlock(& ci->i_ceph_lock); } else { } tmp___14 = ceph_snap(dir); op = tmp___14 == 0xffffffffffffffffULL ? 1024 : 256; req = ceph_mdsc_create_request(mdsc, op, 0); tmp___16 = IS_ERR((void const *)req); if (tmp___16 != 0L) { tmp___15 = ERR_CAST((void const *)req); return ((struct dentry *)tmp___15); } else { } req->r_dentry = dget(dentry); req->r_num_caps = 2; req->r_args.getattr.mask = 1U; req->r_locked_dir = dir; err = ceph_mdsc_do_request(mdsc, 0, req); err = ceph_handle_snapdir(req, dentry, err); dentry = ceph_finish_lookup(req, dentry, err); ceph_mdsc_put_request(req); descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_lookup"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : lookup result=%p\n"; descriptor___2.lineno = 704U; descriptor___2.flags = 0U; tmp___18 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___18 != 0L) { tmp___17 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : lookup result=%p\n", 3, (char *)" ", tmp___17, 704, dentry); } else { } return (dentry); } } int ceph_handle_notrace_create(struct inode *dir , struct dentry *dentry ) { struct dentry *result ; struct dentry *tmp ; long tmp___0 ; long tmp___1 ; long tmp___2 ; { tmp = ceph_lookup(dir, dentry, 0U); result = tmp; if ((unsigned long )result != (unsigned long )((struct dentry *)0)) { tmp___1 = IS_ERR((void const *)result); if (tmp___1 == 0L) { tmp___0 = ldv__builtin_expect((unsigned long )result->d_inode == (unsigned long )((struct inode *)0), 0L); if (tmp___0 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"), "i" (724), "i" (12UL)); ldv_29000: ; goto ldv_29000; } else { } d_instantiate(dentry, result->d_inode); return (0); } else { } } else { } tmp___2 = PTR_ERR((void const *)result); return ((int )tmp___2); } } static int ceph_mknod(struct inode *dir , struct dentry *dentry , umode_t mode , dev_t rdev ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; int err ; u64 tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; long tmp___3 ; long tmp___4 ; { tmp = ceph_sb_to_client(dir->i_sb); fsc = tmp; mdsc = fsc->mdsc; tmp___0 = ceph_snap(dir); if (tmp___0 != 0xfffffffffffffffeULL) { return (-30); } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_mknod"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : mknod in dir %p dentry %p mode 0%ho rdev %d\n"; descriptor.lineno = 743U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : mknod in dir %p dentry %p mode 0%ho rdev %d\n", 3, (char *)" ", tmp___1, 743, dir, dentry, (int )mode, rdev); } else { } req = ceph_mdsc_create_request(mdsc, 4609, 2); tmp___4 = IS_ERR((void const *)req); if (tmp___4 != 0L) { d_drop(dentry); tmp___3 = PTR_ERR((void const *)req); return ((int )tmp___3); } else { } req->r_dentry = dget(dentry); req->r_num_caps = 2; req->r_locked_dir = dir; req->r_args.mknod.mode = (unsigned int )mode; req->r_args.mknod.rdev = rdev; req->r_dentry_drop = 256; req->r_dentry_unless = 512; err = ceph_mdsc_do_request(mdsc, dir, req); if (err == 0 && (unsigned int )(req->r_reply_info.head)->is_dentry == 0U) { err = ceph_handle_notrace_create(dir, dentry); } else { } ceph_mdsc_put_request(req); if (err != 0) { d_drop(dentry); } else { } return (err); } } static int ceph_create(struct inode *dir , struct dentry *dentry , umode_t mode , bool excl ) { int tmp ; { tmp = ceph_mknod(dir, dentry, (int )mode, 0U); return (tmp); } } static int ceph_symlink(struct inode *dir , struct dentry *dentry , char const *dest ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; int err ; u64 tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; long tmp___3 ; long tmp___4 ; { tmp = ceph_sb_to_client(dir->i_sb); fsc = tmp; mdsc = fsc->mdsc; tmp___0 = ceph_snap(dir); if (tmp___0 != 0xfffffffffffffffeULL) { return (-30); } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_symlink"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : symlink in dir %p dentry %p to \'%s\'\n"; descriptor.lineno = 782U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : symlink in dir %p dentry %p to \'%s\'\n", 3, (char *)" ", tmp___1, 782, dir, dentry, dest); } else { } req = ceph_mdsc_create_request(mdsc, 4642, 2); tmp___4 = IS_ERR((void const *)req); if (tmp___4 != 0L) { d_drop(dentry); tmp___3 = PTR_ERR((void const *)req); return ((int )tmp___3); } else { } req->r_dentry = dget(dentry); req->r_num_caps = 2; req->r_path2 = kstrdup(dest, 80U); req->r_locked_dir = dir; req->r_dentry_drop = 256; req->r_dentry_unless = 512; err = ceph_mdsc_do_request(mdsc, dir, req); if (err == 0 && (unsigned int )(req->r_reply_info.head)->is_dentry == 0U) { err = ceph_handle_notrace_create(dir, dentry); } else { } ceph_mdsc_put_request(req); if (err != 0) { d_drop(dentry); } else { } return (err); } } static int ceph_mkdir(struct inode *dir , struct dentry *dentry , umode_t mode ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; int err ; int op ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; u64 tmp___4 ; u64 tmp___5 ; long tmp___6 ; long tmp___7 ; { tmp = ceph_sb_to_client(dir->i_sb); fsc = tmp; mdsc = fsc->mdsc; err = -30; tmp___5 = ceph_snap(dir); if (tmp___5 == 0xffffffffffffffffULL) { op = 5120; descriptor.modname = "ceph"; descriptor.function = "ceph_mkdir"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : mksnap dir %p snap \'%.*s\' dn %p\n"; descriptor.lineno = 815U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : mksnap dir %p snap \'%.*s\' dn %p\n", 3, (char *)" ", tmp___0, 815, dir, dentry->d_name.ldv_11489.ldv_11487.len, dentry->d_name.name, dentry); } else { } } else { tmp___4 = ceph_snap(dir); if (tmp___4 == 0xfffffffffffffffeULL) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_mkdir"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mkdir dir %p dn %p mode 0%ho\n"; descriptor___0.lineno = 817U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mkdir dir %p dn %p mode 0%ho\n", 3, (char *)" ", tmp___2, 817, dir, dentry, (int )mode); } else { } op = 4640; } else { goto out; } } req = ceph_mdsc_create_request(mdsc, op, 2); tmp___7 = IS_ERR((void const *)req); if (tmp___7 != 0L) { tmp___6 = PTR_ERR((void const *)req); err = (int )tmp___6; goto out; } else { } req->r_dentry = dget(dentry); req->r_num_caps = 2; req->r_locked_dir = dir; req->r_args.mkdir.mode = (unsigned int )mode; req->r_dentry_drop = 256; req->r_dentry_unless = 512; err = ceph_mdsc_do_request(mdsc, dir, req); if (err == 0 && (unsigned int )(req->r_reply_info.head)->is_dentry == 0U) { err = ceph_handle_notrace_create(dir, dentry); } else { } ceph_mdsc_put_request(req); out: ; if (err < 0) { d_drop(dentry); } else { } return (err); } } static int ceph_link(struct dentry *old_dentry , struct inode *dir , struct dentry *dentry ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; int err ; u64 tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; long tmp___3 ; long tmp___4 ; { tmp = ceph_sb_to_client(dir->i_sb); fsc = tmp; mdsc = fsc->mdsc; tmp___0 = ceph_snap(dir); if (tmp___0 != 0xfffffffffffffffeULL) { return (-30); } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_link"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : link in dir %p old_dentry %p dentry %p\n"; descriptor.lineno = 856U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : link in dir %p old_dentry %p dentry %p\n", 3, (char *)" ", tmp___1, 856, dir, old_dentry, dentry); } else { } req = ceph_mdsc_create_request(mdsc, 4610, 2); tmp___4 = IS_ERR((void const *)req); if (tmp___4 != 0L) { d_drop(dentry); tmp___3 = PTR_ERR((void const *)req); return ((int )tmp___3); } else { } req->r_dentry = dget(dentry); req->r_num_caps = 2; req->r_old_dentry = dget(old_dentry); req->r_old_dentry_dir = ceph_get_dentry_parent_inode(old_dentry); req->r_locked_dir = dir; req->r_dentry_drop = 256; req->r_dentry_unless = 512; err = ceph_mdsc_do_request(mdsc, dir, req); if (err != 0) { d_drop(dentry); } else if ((unsigned int )(req->r_reply_info.head)->is_dentry == 0U) { ihold(old_dentry->d_inode); d_instantiate(dentry, old_dentry->d_inode); } else { } ceph_mdsc_put_request(req); return (err); } } static int drop_caps_for_unlink(struct inode *inode ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int drop ; int tmp___0 ; { tmp = ceph_inode(inode); ci = tmp; drop = 48; spin_lock(& ci->i_ceph_lock); if ((unsigned int )inode->ldv_13165.i_nlink == 1U) { tmp___0 = __ceph_caps_wanted(ci); drop = ~ (tmp___0 | 1) | drop; ci->i_ceph_flags = ci->i_ceph_flags | 4U; } else { } spin_unlock(& ci->i_ceph_lock); return (drop); } } static int ceph_unlink(struct inode *dir , struct dentry *dentry ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct inode *inode ; struct ceph_mds_request *req ; int err ; int op ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; u64 tmp___4 ; u64 tmp___5 ; long tmp___6 ; long tmp___7 ; { tmp = ceph_sb_to_client(dir->i_sb); fsc = tmp; mdsc = fsc->mdsc; inode = dentry->d_inode; err = -30; tmp___5 = ceph_snap(dir); if (tmp___5 == 0xffffffffffffffffULL) { descriptor.modname = "ceph"; descriptor.function = "ceph_unlink"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : rmsnap dir %p \'%.*s\' dn %p\n"; descriptor.lineno = 915U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : rmsnap dir %p \'%.*s\' dn %p\n", 3, (char *)" ", tmp___0, 915, dir, dentry->d_name.ldv_11489.ldv_11487.len, dentry->d_name.name, dentry); } else { } op = 5121; } else { tmp___4 = ceph_snap(dir); if (tmp___4 == 0xfffffffffffffffeULL) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_unlink"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : unlink/rmdir dir %p dn %p inode %p\n"; descriptor___0.lineno = 919U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : unlink/rmdir dir %p dn %p inode %p\n", 3, (char *)" ", tmp___2, 919, dir, dentry, inode); } else { } op = ((int )(dentry->d_inode)->i_mode & 61440) == 16384 ? 4641 : 4611; } else { goto out; } } req = ceph_mdsc_create_request(mdsc, op, 2); tmp___7 = IS_ERR((void const *)req); if (tmp___7 != 0L) { tmp___6 = PTR_ERR((void const *)req); err = (int )tmp___6; goto out; } else { } req->r_dentry = dget(dentry); req->r_num_caps = 2; req->r_locked_dir = dir; req->r_dentry_drop = 256; req->r_dentry_unless = 512; req->r_inode_drop = drop_caps_for_unlink(inode); err = ceph_mdsc_do_request(mdsc, dir, req); if (err == 0 && (unsigned int )(req->r_reply_info.head)->is_dentry == 0U) { d_delete(dentry); } else { } ceph_mdsc_put_request(req); out: ; return (err); } } static int ceph_rename(struct inode *old_dir , struct dentry *old_dentry , struct inode *new_dir , struct dentry *new_dentry ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; int err ; u64 tmp___0 ; u64 tmp___1 ; u64 tmp___2 ; u64 tmp___3 ; struct _ddebug descriptor ; char const *tmp___4 ; long tmp___5 ; long tmp___6 ; long tmp___7 ; { tmp = ceph_sb_to_client(old_dir->i_sb); fsc = tmp; mdsc = fsc->mdsc; tmp___0 = ceph_snap(old_dir); tmp___1 = ceph_snap(new_dir); if (tmp___0 != tmp___1) { return (-18); } else { } tmp___2 = ceph_snap(old_dir); if (tmp___2 != 0xfffffffffffffffeULL) { return (-30); } else { tmp___3 = ceph_snap(new_dir); if (tmp___3 != 0xfffffffffffffffeULL) { return (-30); } else { } } descriptor.modname = "ceph"; descriptor.function = "ceph_rename"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : rename dir %p dentry %p to dir %p dentry %p\n"; descriptor.lineno = 957U; descriptor.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : rename dir %p dentry %p to dir %p dentry %p\n", 3, (char *)" ", tmp___4, 957, old_dir, old_dentry, new_dir, new_dentry); } else { } req = ceph_mdsc_create_request(mdsc, 4612, 2); tmp___7 = IS_ERR((void const *)req); if (tmp___7 != 0L) { tmp___6 = PTR_ERR((void const *)req); return ((int )tmp___6); } else { } req->r_dentry = dget(new_dentry); req->r_num_caps = 2; req->r_old_dentry = dget(old_dentry); req->r_old_dentry_dir = ceph_get_dentry_parent_inode(old_dentry); req->r_locked_dir = new_dir; req->r_old_dentry_drop = 256; req->r_old_dentry_unless = 512; req->r_dentry_drop = 256; req->r_dentry_unless = 512; req->r_old_inode_drop = 16; if ((unsigned long )new_dentry->d_inode != (unsigned long )((struct inode *)0)) { req->r_inode_drop = drop_caps_for_unlink(new_dentry->d_inode); } else { } err = ceph_mdsc_do_request(mdsc, old_dir, req); if (err == 0 && (unsigned int )(req->r_reply_info.head)->is_dentry == 0U) { ceph_dir_clear_complete(new_dir); d_move(old_dentry, new_dentry); ceph_invalidate_dentry_lease(new_dentry); } else { } ceph_mdsc_put_request(req); return (err); } } void ceph_invalidate_dentry_lease(struct dentry *dentry ) { struct ceph_dentry_info *tmp ; { spin_lock(& dentry->d_lock); dentry->d_time = jiffies; tmp = ceph_dentry(dentry); tmp->lease_shared_gen = 0U; spin_unlock(& dentry->d_lock); return; } } static int dentry_lease_is_valid(struct dentry *dentry ) { struct ceph_dentry_info *di ; struct ceph_mds_session *s ; int valid ; u32 gen ; unsigned long ttl ; struct ceph_mds_session *session ; struct inode *dir ; u32 seq ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { valid = 0; session = 0; dir = 0; seq = 0U; spin_lock(& dentry->d_lock); di = ceph_dentry(dentry); if ((unsigned long )di->lease_session != (unsigned long )((struct ceph_mds_session *)0)) { s = di->lease_session; spin_lock(& s->s_gen_ttl_lock); gen = s->s_cap_gen; ttl = s->s_cap_ttl; spin_unlock(& s->s_gen_ttl_lock); if ((di->lease_gen == gen && (long )jiffies - (long )dentry->d_time < 0L) && (long )jiffies - (long )ttl < 0L) { valid = 1; if (di->lease_renew_after != 0UL && (long )di->lease_renew_after - (long )jiffies < 0L) { dir = (dentry->d_parent)->d_inode; session = ceph_get_mds_session(s); seq = di->lease_seq; di->lease_renew_after = 0UL; di->lease_renew_from = jiffies; } else { } } else { } } else { } spin_unlock(& dentry->d_lock); if ((unsigned long )session != (unsigned long )((struct ceph_mds_session *)0)) { ceph_mdsc_lease_send_msg(session, dir, dentry, 3, seq); ceph_put_mds_session(session); } else { } descriptor.modname = "ceph"; descriptor.function = "dentry_lease_is_valid"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : dentry_lease_is_valid - dentry %p = %d\n"; descriptor.lineno = 1052U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : dentry_lease_is_valid - dentry %p = %d\n", 3, (char *)" ", tmp, 1052, dentry, valid); } else { } return (valid); } } static int dir_lease_is_valid(struct inode *dir , struct dentry *dentry ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_dentry_info *di ; struct ceph_dentry_info *tmp___0 ; int valid ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; { tmp = ceph_inode(dir); ci = tmp; tmp___0 = ceph_dentry(dentry); di = tmp___0; valid = 0; spin_lock(& ci->i_ceph_lock); if (ci->i_shared_gen == di->lease_shared_gen) { valid = __ceph_caps_issued_mask(ci, 256, 1); } else { } spin_unlock(& ci->i_ceph_lock); descriptor.modname = "ceph"; descriptor.function = "dir_lease_is_valid"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : dir_lease_is_valid dir %p v%u dentry %p v%u = %d\n"; descriptor.lineno = 1071U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : dir_lease_is_valid dir %p v%u dentry %p v%u = %d\n", 3, (char *)" ", tmp___1, 1071, dir, ci->i_shared_gen, dentry, di->lease_shared_gen, valid); } else { } return (valid); } } static int ceph_d_revalidate(struct dentry *dentry , unsigned int flags ) { int valid ; struct inode *dir ; struct _ddebug descriptor ; struct ceph_dentry_info *tmp ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; int tmp___4 ; int tmp___5 ; u64 tmp___6 ; u64 tmp___7 ; struct _ddebug descriptor___1 ; char const *tmp___8 ; long tmp___9 ; { valid = 0; if ((flags & 64U) != 0U) { return (-10); } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_d_revalidate"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : d_revalidate %p \'%.*s\' inode %p offset %lld\n"; descriptor.lineno = 1088U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp = ceph_dentry(dentry); tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : d_revalidate %p \'%.*s\' inode %p offset %lld\n", 3, (char *)" ", tmp___0, 1088, dentry, dentry->d_name.ldv_11489.ldv_11487.len, dentry->d_name.name, dentry->d_inode, tmp->offset); } else { } dir = ceph_get_dentry_parent_inode(dentry); tmp___7 = ceph_snap(dir); if (tmp___7 != 0xfffffffffffffffeULL) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_d_revalidate"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : d_revalidate %p \'%.*s\' inode %p is SNAPPED\n"; descriptor___0.lineno = 1095U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : d_revalidate %p \'%.*s\' inode %p is SNAPPED\n", 3, (char *)" ", tmp___2, 1095, dentry, dentry->d_name.ldv_11489.ldv_11487.len, dentry->d_name.name, dentry->d_inode); } else { } valid = 1; } else if ((unsigned long )dentry->d_inode != (unsigned long )((struct inode *)0)) { tmp___6 = ceph_snap(dentry->d_inode); if (tmp___6 == 0xffffffffffffffffULL) { valid = 1; } else { goto _L; } } else { _L: /* CIL Label */ tmp___4 = dentry_lease_is_valid(dentry); if (tmp___4 != 0) { valid = 1; } else { tmp___5 = dir_lease_is_valid(dir, dentry); if (tmp___5 != 0) { valid = 1; } else { } } } descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_d_revalidate"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : d_revalidate %p %s\n"; descriptor___1.lineno = 1105U; descriptor___1.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : d_revalidate %p %s\n", 3, (char *)" ", tmp___8, 1105, dentry, valid != 0 ? (char *)"valid" : (char *)"invalid"); } else { } if (valid != 0) { ceph_dentry_lru_touch(dentry); } else { d_drop(dentry); } iput(dir); return (valid); } } static void ceph_d_release(struct dentry *dentry ) { struct ceph_dentry_info *di ; struct ceph_dentry_info *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { tmp = ceph_dentry(dentry); di = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_d_release"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : d_release %p\n"; descriptor.lineno = 1121U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : d_release %p\n", 3, (char *)" ", tmp___0, 1121, dentry); } else { } ceph_dentry_lru_del(dentry); if ((unsigned long )di->lease_session != (unsigned long )((struct ceph_mds_session *)0)) { ceph_put_mds_session(di->lease_session); } else { } kmem_cache_free(ceph_dentry_cachep, (void *)di); dentry->d_fsdata = 0; return; } } static int ceph_snapdir_d_revalidate(struct dentry *dentry , unsigned int flags ) { { return (1); } } void ceph_dir_set_complete(struct inode *inode ) { struct dentry *dentry ; struct dentry *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct ceph_dentry_info *tmp___2 ; struct ceph_dentry_info *tmp___3 ; struct ceph_fs_client *tmp___4 ; { tmp = d_find_any_alias(inode); dentry = tmp; if ((unsigned long )dentry != (unsigned long )((struct dentry *)0)) { tmp___3 = ceph_dentry(dentry); if ((unsigned long )tmp___3 != (unsigned long )((struct ceph_dentry_info *)0)) { tmp___4 = ceph_sb_to_client(dentry->d_sb); if (((tmp___4->mount_options)->flags & 512) != 0) { descriptor.modname = "ceph"; descriptor.function = "ceph_dir_set_complete"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : marking %p (%p) complete\n"; descriptor.lineno = 1148U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : marking %p (%p) complete\n", 3, (char *)" ", tmp___0, 1148, inode, dentry); } else { } tmp___2 = ceph_dentry(dentry); set_bit(1U, (unsigned long volatile *)(& tmp___2->flags)); } else { } } else { } } else { } dput(dentry); return; } } void ceph_dir_clear_complete(struct inode *inode ) { struct dentry *dentry ; struct dentry *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct ceph_dentry_info *tmp___2 ; struct ceph_dentry_info *tmp___3 ; { tmp = d_find_any_alias(inode); dentry = tmp; if ((unsigned long )dentry != (unsigned long )((struct dentry *)0)) { tmp___3 = ceph_dentry(dentry); if ((unsigned long )tmp___3 != (unsigned long )((struct ceph_dentry_info *)0)) { descriptor.modname = "ceph"; descriptor.function = "ceph_dir_clear_complete"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : marking %p (%p) complete\n"; descriptor.lineno = 1159U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : marking %p (%p) complete\n", 3, (char *)" ", tmp___0, 1159, inode, dentry); } else { } tmp___2 = ceph_dentry(dentry); set_bit(1U, (unsigned long volatile *)(& tmp___2->flags)); } else { } } else { } dput(dentry); return; } } bool ceph_dir_test_complete(struct inode *inode ) { struct dentry *dentry ; struct dentry *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct ceph_dentry_info *tmp___2 ; struct ceph_dentry_info *tmp___3 ; { tmp = d_find_any_alias(inode); dentry = tmp; if ((unsigned long )dentry != (unsigned long )((struct dentry *)0)) { tmp___3 = ceph_dentry(dentry); if ((unsigned long )tmp___3 != (unsigned long )((struct ceph_dentry_info *)0)) { descriptor.modname = "ceph"; descriptor.function = "ceph_dir_test_complete"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : marking %p (%p) NOT complete\n"; descriptor.lineno = 1170U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : marking %p (%p) NOT complete\n", 3, (char *)" ", tmp___0, 1170, inode, dentry); } else { } tmp___2 = ceph_dentry(dentry); clear_bit(1, (unsigned long volatile *)(& tmp___2->flags)); } else { } } else { } dput(dentry); return (0); } } static void ceph_d_prune(struct dentry *dentry ) { struct ceph_dentry_info *di ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; int tmp___1 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_d_prune"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_d_prune %p\n"; descriptor.lineno = 1187U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_d_prune %p\n", 3, (char *)" ", tmp, 1187, dentry); } else { } if ((unsigned long )dentry->d_parent == (unsigned long )dentry) { return; } else { } tmp___1 = d_unhashed(dentry); if (tmp___1 != 0) { return; } else { } di = ceph_dentry(dentry->d_parent); clear_bit(1, (unsigned long volatile *)(& di->flags)); return; } } static ssize_t ceph_read_dir(struct file *file , char *buf , size_t size , loff_t *ppos ) { struct ceph_file_info *cf ; struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int left ; int bufsize ; struct ceph_fs_client *tmp___0 ; void *tmp___1 ; unsigned int __min1 ; unsigned int __min2 ; { cf = (struct ceph_file_info *)file->private_data; inode = (file->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; bufsize = 1024; tmp___0 = ceph_sb_to_client(inode->i_sb); if (((tmp___0->mount_options)->flags & 16) == 0) { return (-21L); } else { } if ((unsigned long )cf->dir_info == (unsigned long )((char *)0)) { tmp___1 = kmalloc((size_t )bufsize, 80U); cf->dir_info = (char *)tmp___1; if ((unsigned long )cf->dir_info == (unsigned long )((char *)0)) { return (-12L); } else { } cf->dir_info_len = snprintf(cf->dir_info, (size_t )bufsize, "entries: %20lld\n files: %20lld\n subdirs: %20lld\nrentries: %20lld\n rfiles: %20lld\n rsubdirs: %20lld\nrbytes: %20lld\nrctime: %10ld.%09ld\n", ci->i_files + ci->i_subdirs, ci->i_files, ci->i_subdirs, ci->i_rfiles + ci->i_rsubdirs, ci->i_rfiles, ci->i_rsubdirs, ci->i_rbytes, ci->i_rctime.tv_sec, ci->i_rctime.tv_nsec); } else { } if (*ppos >= (loff_t )cf->dir_info_len) { return (0L); } else { } __min1 = (unsigned int )size; __min2 = (unsigned int )cf->dir_info_len - (unsigned int )*ppos; size = (size_t )(__min1 < __min2 ? __min1 : __min2); left = copy_to_user((void *)buf, (void const *)cf->dir_info + (unsigned long )*ppos, (unsigned int )size); if ((size_t )left == size) { return (-14L); } else { } *ppos = (loff_t )((unsigned long long )*ppos + (unsigned long long )(size - (size_t )left)); return ((ssize_t )(size - (size_t )left)); } } static int ceph_dir_fsync(struct file *file , loff_t start , loff_t end , int datasync ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct list_head *head ; struct ceph_mds_request *req ; u64 last_tid ; int ret ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; int tmp___2 ; struct list_head const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; unsigned long tmp___5 ; int tmp___6 ; struct list_head const *__mptr___0 ; { inode = (file->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; head = & ci->i_unsafe_dirops; ret = 0; descriptor.modname = "ceph"; descriptor.function = "ceph_dir_fsync"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : dir_fsync %p\n"; descriptor.lineno = 1270U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : dir_fsync %p\n", 3, (char *)" ", tmp___0, 1270, inode); } else { } ret = filemap_write_and_wait_range(inode->i_mapping, start, end); if (ret != 0) { return (ret); } else { } ldv_mutex_lock_45(& inode->i_mutex); spin_lock(& ci->i_unsafe_lock); tmp___2 = list_empty((struct list_head const *)head); if (tmp___2 != 0) { goto out; } else { } __mptr = (struct list_head const *)head->prev; req = (struct ceph_mds_request *)__mptr + 0xfffffffffffffd38UL; last_tid = req->r_tid; ldv_29208: ceph_mdsc_get_request(req); spin_unlock(& ci->i_unsafe_lock); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_dir_fsync"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : dir_fsync %p wait on tid %llu (until %llu)\n"; descriptor___0.lineno = 1289U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : dir_fsync %p wait on tid %llu (until %llu)\n", 3, (char *)" ", tmp___3, 1289, inode, req->r_tid, last_tid); } else { } if (req->r_timeout != 0UL) { tmp___5 = wait_for_completion_timeout(& req->r_safe_completion, req->r_timeout); ret = (int )tmp___5; if (ret > 0) { ret = 0; } else if (ret == 0) { ret = -5; } else { } } else { wait_for_completion(& req->r_safe_completion); } ceph_mdsc_put_request(req); spin_lock(& ci->i_unsafe_lock); if (ret != 0) { goto ldv_29205; } else { tmp___6 = list_empty((struct list_head const *)head); if (tmp___6 != 0) { goto ldv_29205; } else { } } __mptr___0 = (struct list_head const *)head->next; req = (struct ceph_mds_request *)__mptr___0 + 0xfffffffffffffd38UL; if (req->r_tid < last_tid) { goto ldv_29208; } else { } ldv_29205: ; out: spin_unlock(& ci->i_unsafe_lock); ldv_mutex_unlock_46(& inode->i_mutex); return (ret); } } void ceph_dentry_lru_add(struct dentry *dn ) { struct ceph_dentry_info *di ; struct ceph_dentry_info *tmp ; struct ceph_mds_client *mdsc ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct ceph_fs_client *tmp___2 ; { tmp = ceph_dentry(dn); di = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_dentry_lru_add"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : dentry_lru_add %p %p \'%.*s\'\n"; descriptor.lineno = 1326U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : dentry_lru_add %p %p \'%.*s\'\n", 3, (char *)" ", tmp___0, 1326, di, dn, dn->d_name.ldv_11489.ldv_11487.len, dn->d_name.name); } else { } tmp___2 = ceph_sb_to_client(dn->d_sb); mdsc = tmp___2->mdsc; spin_lock(& mdsc->dentry_lru_lock); list_add_tail(& di->lru, & mdsc->dentry_lru); mdsc->num_dentry = mdsc->num_dentry + 1; spin_unlock(& mdsc->dentry_lru_lock); return; } } void ceph_dentry_lru_touch(struct dentry *dn ) { struct ceph_dentry_info *di ; struct ceph_dentry_info *tmp ; struct ceph_mds_client *mdsc ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct ceph_fs_client *tmp___2 ; { tmp = ceph_dentry(dn); di = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_dentry_lru_touch"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : dentry_lru_touch %p %p \'%.*s\' (offset %lld)\n"; descriptor.lineno = 1340U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : dentry_lru_touch %p %p \'%.*s\' (offset %lld)\n", 3, (char *)" ", tmp___0, 1340, di, dn, dn->d_name.ldv_11489.ldv_11487.len, dn->d_name.name, di->offset); } else { } tmp___2 = ceph_sb_to_client(dn->d_sb); mdsc = tmp___2->mdsc; spin_lock(& mdsc->dentry_lru_lock); list_move_tail(& di->lru, & mdsc->dentry_lru); spin_unlock(& mdsc->dentry_lru_lock); return; } } void ceph_dentry_lru_del(struct dentry *dn ) { struct ceph_dentry_info *di ; struct ceph_dentry_info *tmp ; struct ceph_mds_client *mdsc ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct ceph_fs_client *tmp___2 ; { tmp = ceph_dentry(dn); di = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_dentry_lru_del"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : dentry_lru_del %p %p \'%.*s\'\n"; descriptor.lineno = 1353U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/dir.c.prepared", 259); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : dentry_lru_del %p %p \'%.*s\'\n", 3, (char *)" ", tmp___0, 1353, di, dn, dn->d_name.ldv_11489.ldv_11487.len, dn->d_name.name); } else { } tmp___2 = ceph_sb_to_client(dn->d_sb); mdsc = tmp___2->mdsc; spin_lock(& mdsc->dentry_lru_lock); list_del_init(& di->lru); mdsc->num_dentry = mdsc->num_dentry - 1; spin_unlock(& mdsc->dentry_lru_lock); return; } } unsigned int ceph_dentry_hash(struct inode *dir , struct dentry *dn ) { struct ceph_inode_info *dci ; struct ceph_inode_info *tmp ; unsigned int tmp___0 ; { tmp = ceph_inode(dir); dci = tmp; switch ((int )dci->i_dir_layout.dl_dir_hash) { case 0: ; case 1: ; return (dn->d_name.ldv_11489.ldv_11487.hash); default: tmp___0 = ceph_str_hash((int )dci->i_dir_layout.dl_dir_hash, (char const *)dn->d_name.name, dn->d_name.ldv_11489.ldv_11487.len); return (tmp___0); } } } struct file_operations const ceph_dir_fops = {0, & ceph_dir_llseek, & ceph_read_dir, 0, 0, 0, & ceph_readdir, 0, & ceph_ioctl, 0, 0, & ceph_open, 0, & ceph_release, & ceph_dir_fsync, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; struct inode_operations const ceph_dir_iops = {& ceph_lookup, 0, & ceph_permission, 0, 0, 0, & ceph_create, & ceph_link, & ceph_unlink, & ceph_symlink, & ceph_mkdir, & ceph_unlink, & ceph_mknod, & ceph_rename, & ceph_setattr, & ceph_getattr, & ceph_setxattr, & ceph_getxattr, & ceph_listxattr, & ceph_removexattr, 0, 0, & ceph_atomic_open}; struct dentry_operations const ceph_dentry_ops = {& ceph_d_revalidate, 0, 0, 0, & ceph_d_release, & ceph_d_prune, 0, 0, 0, 0}; struct dentry_operations const ceph_snapdir_dentry_ops = {& ceph_snapdir_d_revalidate, 0, 0, 0, & ceph_d_release, 0, 0, 0, 0, 0}; struct dentry_operations const ceph_snap_dentry_ops = {0, 0, 0, 0, & ceph_d_release, & ceph_d_prune, 0, 0, 0, 0}; extern void ldv_check_return_value(int ) ; void ldv_main2_sequence_infinite_withcheck_stateful(void) { struct file *var_group1 ; char *var_ceph_read_dir_32_p1 ; size_t var_ceph_read_dir_32_p2 ; loff_t *var_ceph_read_dir_32_p3 ; ssize_t res_ceph_read_dir_32 ; void *var_ceph_readdir_6_p1 ; int (*var_ceph_readdir_6_p2)(void * , char const * , int , loff_t , u64 , unsigned int ) ; loff_t var_ceph_dir_llseek_8_p1 ; int var_ceph_dir_llseek_8_p2 ; loff_t var_ceph_dir_fsync_33_p1 ; loff_t var_ceph_dir_fsync_33_p2 ; int var_ceph_dir_fsync_33_p3 ; struct inode *var_group2 ; struct dentry *var_group3 ; unsigned int var_ceph_lookup_12_p2 ; umode_t var_ceph_mknod_14_p2 ; dev_t var_ceph_mknod_14_p3 ; char const *var_ceph_symlink_16_p2 ; umode_t var_ceph_mkdir_17_p2 ; struct dentry *var_ceph_link_18_p2 ; struct inode *var_ceph_rename_21_p2 ; struct dentry *var_ceph_rename_21_p3 ; umode_t var_ceph_create_15_p2 ; bool var_ceph_create_15_p3 ; unsigned int var_ceph_d_revalidate_25_p1 ; unsigned int var_ceph_snapdir_d_revalidate_27_p1 ; int ldv_s_ceph_dir_fops_file_operations ; int tmp ; int tmp___0 ; { ldv_s_ceph_dir_fops_file_operations = 0; LDV_IN_INTERRUPT = 1; ldv_initialize(); goto ldv_29309; ldv_29308: tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_s_ceph_dir_fops_file_operations == 0) { ldv_handler_precall(); res_ceph_read_dir_32 = ceph_read_dir(var_group1, var_ceph_read_dir_32_p1, var_ceph_read_dir_32_p2, var_ceph_read_dir_32_p3); ldv_check_return_value((int )res_ceph_read_dir_32); if (res_ceph_read_dir_32 < 0L) { goto ldv_module_exit; } else { } ldv_s_ceph_dir_fops_file_operations = ldv_s_ceph_dir_fops_file_operations + 1; } else { } goto ldv_29288; case 1: ; if (ldv_s_ceph_dir_fops_file_operations == 1) { ldv_handler_precall(); ceph_dir_llseek(var_group1, var_ceph_dir_llseek_8_p1, var_ceph_dir_llseek_8_p2); ldv_s_ceph_dir_fops_file_operations = 0; } else { } goto ldv_29288; case 2: ldv_handler_precall(); ceph_readdir(var_group1, var_ceph_readdir_6_p1, var_ceph_readdir_6_p2); goto ldv_29288; case 3: ldv_handler_precall(); ceph_dir_fsync(var_group1, var_ceph_dir_fsync_33_p1, var_ceph_dir_fsync_33_p2, var_ceph_dir_fsync_33_p3); goto ldv_29288; case 4: ldv_handler_precall(); ceph_lookup(var_group2, var_group3, var_ceph_lookup_12_p2); goto ldv_29288; case 5: ldv_handler_precall(); ceph_mknod(var_group2, var_group3, (int )var_ceph_mknod_14_p2, var_ceph_mknod_14_p3); goto ldv_29288; case 6: ldv_handler_precall(); ceph_symlink(var_group2, var_group3, var_ceph_symlink_16_p2); goto ldv_29288; case 7: ldv_handler_precall(); ceph_mkdir(var_group2, var_group3, (int )var_ceph_mkdir_17_p2); goto ldv_29288; case 8: ldv_handler_precall(); ceph_link(var_group3, var_group2, var_ceph_link_18_p2); goto ldv_29288; case 9: ldv_handler_precall(); ceph_unlink(var_group2, var_group3); goto ldv_29288; case 10: ldv_handler_precall(); ceph_rename(var_group2, var_group3, var_ceph_rename_21_p2, var_ceph_rename_21_p3); goto ldv_29288; case 11: ldv_handler_precall(); ceph_create(var_group2, var_group3, (int )var_ceph_create_15_p2, (int )var_ceph_create_15_p3); goto ldv_29288; case 12: ldv_handler_precall(); ceph_d_revalidate(var_group3, var_ceph_d_revalidate_25_p1); goto ldv_29288; case 13: ldv_handler_precall(); ceph_d_release(var_group3); goto ldv_29288; case 14: ldv_handler_precall(); ceph_d_prune(var_group3); goto ldv_29288; case 15: ldv_handler_precall(); ceph_snapdir_d_revalidate(var_group3, var_ceph_snapdir_d_revalidate_27_p1); goto ldv_29288; case 16: ldv_handler_precall(); ceph_d_release(var_group3); goto ldv_29288; case 17: ldv_handler_precall(); ceph_d_release(var_group3); goto ldv_29288; case 18: ldv_handler_precall(); ceph_d_prune(var_group3); goto ldv_29288; default: ; goto ldv_29288; } ldv_29288: ; ldv_29309: tmp___0 = __VERIFIER_nondet_int(); if (tmp___0 != 0 || ldv_s_ceph_dir_fops_file_operations != 0) { goto ldv_29308; } else { } ldv_module_exit: ; ldv_check_final_state(); return; } } void ldv_mutex_lock_39(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_40(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_41(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_42(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_43(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_i_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_44(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_i_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_45(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_i_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_46(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_i_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_56(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_58(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_60(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_55(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_57(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_59(struct mutex *ldv_func_arg1 ) ; __inline static loff_t i_size_read(struct inode const *inode ) { { return ((loff_t )inode->i_size); } } extern int finish_open(struct file * , struct dentry * , int (*)(struct inode * , struct file * ) , int * ) ; extern int finish_no_open(struct file * , struct dentry * ) ; extern int invalidate_inode_pages2_range(struct address_space * , unsigned long , unsigned long ) ; extern int filemap_write_and_wait(struct address_space * ) ; extern int vfs_fsync_range(struct file * , loff_t , loff_t , int ) ; extern ssize_t generic_file_aio_read(struct kiocb * , struct iovec const * , unsigned long , loff_t ) ; extern ssize_t generic_file_aio_write(struct kiocb * , struct iovec const * , unsigned long , loff_t ) ; extern ssize_t do_sync_read(struct file * , char * , size_t , loff_t * ) ; extern ssize_t do_sync_write(struct file * , char const * , size_t , loff_t * ) ; extern ssize_t generic_file_splice_read(struct file * , loff_t * , struct pipe_inode_info * , size_t , unsigned int ) ; extern ssize_t generic_file_splice_write(struct pipe_inode_info * , struct file * , loff_t * , size_t , unsigned int ) ; extern void truncate_inode_pages_range(struct address_space * , loff_t , loff_t ) ; extern int ceph_flags_to_mode(int ) ; extern int ceph_caps_for_mode(int ) ; __inline static bool ceph_osdmap_flag(struct ceph_osdmap *map , int flag ) { { return ((bool )((unsigned long )map != (unsigned long )((struct ceph_osdmap *)0) && (map->flags & (u32 )flag) != 0U)); } } extern struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client * , struct ceph_file_layout * , struct ceph_vino , u64 , u64 * , int , int , struct ceph_snap_context * , int , u32 , u64 , struct timespec * , bool , int , int ) ; extern void ceph_osdc_release_request(struct kref * ) ; __inline static void ceph_osdc_put_request(struct ceph_osd_request *req ) { { kref_put(& req->r_kref, & ceph_osdc_release_request); return; } } extern int ceph_osdc_start_request(struct ceph_osd_client * , struct ceph_osd_request * , bool ) ; extern int ceph_osdc_wait_request(struct ceph_osd_client * , struct ceph_osd_request * ) ; extern int ceph_osdc_readpages(struct ceph_osd_client * , struct ceph_vino , struct ceph_file_layout * , u64 , u64 * , u32 , u64 , struct page ** , int , int ) ; __inline static int calc_pages_for(u64 off , u64 len ) { { return ((int )((unsigned int )(((off + len) + 4095ULL) >> 12) - (unsigned int )(off >> 12))); } } extern void ceph_release_page_vector(struct page ** , int ) ; extern struct page **ceph_get_direct_page_vector(char const * , int , bool ) ; extern void ceph_put_page_vector(struct page ** , int , bool ) ; extern struct page **ceph_alloc_page_vector(int , gfp_t ) ; extern int ceph_copy_user_to_page_vector(struct page ** , char const * , loff_t , size_t ) ; extern int ceph_copy_page_vector_to_user(struct page ** , char * , loff_t , size_t ) ; extern void ceph_zero_page_vector_range(int , int , struct page ** ) ; __inline static struct ceph_vino ceph_vino(struct inode *inode ) { struct ceph_inode_info *tmp ; { tmp = ceph_inode(inode); return (tmp->i_vino); } } __inline static bool __ceph_is_any_real_caps(struct ceph_inode_info *ci ) { { return ((unsigned long )ci->i_caps.rb_node != (unsigned long )((struct rb_node *)0)); } } int __ceph_caps_mds_wanted(struct ceph_inode_info *ci ) ; int ceph_fsync(struct file *file , loff_t start , loff_t end , int datasync ) ; void ceph_get_cap_refs(struct ceph_inode_info *ci , int caps ) ; void ceph_put_cap_refs(struct ceph_inode_info *ci , int had ) ; int ceph_get_caps(struct ceph_inode_info *ci , int need , int want , int *got , loff_t endoff ) ; void ceph_put_fmode(struct ceph_inode_info *ci , int fmode ) ; int ceph_mmap(struct file *file , struct vm_area_struct *vma ) ; int ceph_lock(struct file *file , int cmd , struct file_lock *fl ) ; int ceph_flock(struct file *file , int cmd , struct file_lock *fl ) ; static struct ceph_mds_request *prepare_open_request(struct super_block *sb , int flags , int create_mode ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; int want_auth ; int op ; long tmp___0 ; { tmp = ceph_sb_to_client(sb); fsc = tmp; mdsc = fsc->mdsc; want_auth = 0; op = (flags & 64) != 0 ? 4865 : 770; if ((flags & 579) != 0) { want_auth = 2; } else { } req = ceph_mdsc_create_request(mdsc, op, want_auth); tmp___0 = IS_ERR((void const *)req); if (tmp___0 != 0L) { goto out; } else { } req->r_fmode = ceph_flags_to_mode(flags); req->r_args.open.flags = (unsigned int )flags; req->r_args.open.mode = (unsigned int )create_mode; out: ; return (req); } } static int ceph_init_file(struct inode *inode , struct file *file , int fmode ) { struct ceph_file_info *cf ; int ret ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; void *tmp___1 ; struct ceph_inode_info *tmp___2 ; long tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; struct ceph_inode_info *tmp___6 ; struct _ddebug descriptor___1 ; char const *tmp___7 ; long tmp___8 ; struct ceph_inode_info *tmp___9 ; long tmp___10 ; { ret = 0; switch ((int )inode->i_mode & 61440) { case 32768: ; case 16384: descriptor.modname = "ceph"; descriptor.function = "ceph_init_file"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : init_file %p %p 0%o (regular)\n"; descriptor.lineno = 147U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : init_file %p %p 0%o (regular)\n", 3, (char *)" ", tmp, 147, inode, file, (int )inode->i_mode); } else { } tmp___1 = kmem_cache_alloc(ceph_file_cachep, 32848U); cf = (struct ceph_file_info *)tmp___1; if ((unsigned long )cf == (unsigned long )((struct ceph_file_info *)0)) { tmp___2 = ceph_inode(inode); ceph_put_fmode(tmp___2, fmode); return (-12); } else { } cf->fmode = (short )fmode; cf->next_offset = 2ULL; file->private_data = (void *)cf; tmp___3 = ldv__builtin_expect((unsigned long )((int (*)(struct inode * , struct file * ))(inode->i_fop)->release) != (unsigned long )(& ceph_release), 0L); if (tmp___3 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"), "i" (156), "i" (12UL)); ldv_29752: ; goto ldv_29752; } else { } goto ldv_29753; case 40960: descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_init_file"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : init_file %p %p 0%o (symlink)\n"; descriptor___0.lineno = 161U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : init_file %p %p 0%o (symlink)\n", 3, (char *)" ", tmp___4, 161, inode, file, (int )inode->i_mode); } else { } tmp___6 = ceph_inode(inode); ceph_put_fmode(tmp___6, fmode); goto ldv_29753; default: descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_init_file"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : init_file %p %p 0%o (special)\n"; descriptor___1.lineno = 167U; descriptor___1.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : init_file %p %p 0%o (special)\n", 3, (char *)" ", tmp___7, 167, inode, file, (int )inode->i_mode); } else { } tmp___9 = ceph_inode(inode); ceph_put_fmode(tmp___9, fmode); tmp___10 = ldv__builtin_expect((unsigned long )((int (*)(struct inode * , struct file * ))(inode->i_fop)->release) == (unsigned long )(& ceph_release), 0L); if (tmp___10 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"), "i" (173), "i" (12UL)); ldv_29758: ; goto ldv_29758; } else { } ret = (*((inode->i_fop)->open))(inode, file); } ldv_29753: ; return (ret); } } int ceph_open(struct inode *inode , struct file *file ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp___0 ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; struct ceph_file_info *cf ; struct inode *parent_inode ; int err ; int flags ; int fmode ; int wanted ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; struct ceph_inode_info *tmp___3 ; struct ceph_inode_info *tmp___4 ; char const *tmp___5 ; long tmp___6 ; u64 tmp___7 ; int tmp___8 ; u64 tmp___9 ; int mds_wanted ; int tmp___10 ; int issued ; int tmp___11 ; struct _ddebug descriptor___1 ; char const *tmp___12 ; char const *tmp___13 ; char const *tmp___14 ; long tmp___15 ; u64 tmp___16 ; int tmp___17 ; int tmp___18 ; u64 tmp___19 ; bool tmp___20 ; struct _ddebug descriptor___2 ; char const *tmp___21 ; char const *tmp___22 ; long tmp___23 ; long tmp___24 ; long tmp___25 ; struct _ddebug descriptor___3 ; struct ceph_inode_info *tmp___26 ; struct ceph_inode_info *tmp___27 ; char const *tmp___28 ; long tmp___29 ; { tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_sb_to_client(inode->i_sb); fsc = tmp___0; mdsc = fsc->mdsc; cf = (struct ceph_file_info *)file->private_data; parent_inode = 0; if ((unsigned long )cf != (unsigned long )((struct ceph_file_info *)0)) { descriptor.modname = "ceph"; descriptor.function = "ceph_open"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : open file %p is already opened\n"; descriptor.lineno = 199U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : open file %p is already opened\n", 3, (char *)" ", tmp___1, 199, file); } else { } return (0); } else { } flags = (int )file->f_flags & -193; if (((int )inode->i_mode & 61440) == 16384) { flags = 65536; } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_open"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : open inode %p ino %llx.%llx file %p flags %d (%d)\n"; descriptor___0.lineno = 209U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___3 = ceph_inode(inode); tmp___4 = ceph_inode(inode); tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : open inode %p ino %llx.%llx file %p flags %d (%d)\n", 3, (char *)" ", tmp___5, 209, inode, tmp___4->i_vino.ino, tmp___3->i_vino.snap, file, flags, file->f_flags); } else { } fmode = ceph_flags_to_mode(flags); wanted = ceph_caps_for_mode(fmode); tmp___7 = ceph_snap(inode); if (tmp___7 != 0xfffffffffffffffeULL && (file->f_mode & 2U) != 0U) { return (-30); } else { } tmp___9 = ceph_snap(inode); if (tmp___9 == 0xffffffffffffffffULL) { spin_lock(& ci->i_ceph_lock); __ceph_get_fmode(ci, fmode); spin_unlock(& ci->i_ceph_lock); tmp___8 = ceph_init_file(inode, file, fmode); return (tmp___8); } else { } spin_lock(& ci->i_ceph_lock); tmp___20 = __ceph_is_any_real_caps(ci); if ((int )tmp___20 && ((fmode & 2) == 0 || (unsigned long )ci->i_auth_cap != (unsigned long )((struct ceph_cap *)0))) { tmp___10 = __ceph_caps_mds_wanted(ci); mds_wanted = tmp___10; tmp___11 = __ceph_caps_issued(ci, 0); issued = tmp___11; descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_open"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : open %p fmode %d want %s issued %s using existing\n"; descriptor___1.lineno = 238U; descriptor___1.flags = 0U; tmp___15 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___15 != 0L) { tmp___12 = ceph_cap_string(issued); tmp___13 = ceph_cap_string(wanted); tmp___14 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : open %p fmode %d want %s issued %s using existing\n", 3, (char *)" ", tmp___14, 238, inode, fmode, tmp___13, tmp___12); } else { } __ceph_get_fmode(ci, fmode); spin_unlock(& ci->i_ceph_lock); if ((issued & wanted) != wanted && (mds_wanted & wanted) != wanted) { tmp___16 = ceph_snap(inode); if (tmp___16 != 0xffffffffffffffffULL) { ceph_check_caps(ci, 0, 0); } else { } } else { } tmp___17 = ceph_init_file(inode, file, fmode); return (tmp___17); } else { tmp___19 = ceph_snap(inode); if (tmp___19 != 0xfffffffffffffffeULL && (ci->i_snap_caps & (unsigned int )wanted) == (unsigned int )wanted) { __ceph_get_fmode(ci, fmode); spin_unlock(& ci->i_ceph_lock); tmp___18 = ceph_init_file(inode, file, fmode); return (tmp___18); } else { } } spin_unlock(& ci->i_ceph_lock); descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_open"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : open fmode %d wants %s\n"; descriptor___2.lineno = 257U; descriptor___2.flags = 0U; tmp___23 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___23 != 0L) { tmp___21 = ceph_cap_string(wanted); tmp___22 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : open fmode %d wants %s\n", 3, (char *)" ", tmp___22, 257, fmode, tmp___21); } else { } req = prepare_open_request(inode->i_sb, flags, 0); tmp___25 = IS_ERR((void const *)req); if (tmp___25 != 0L) { tmp___24 = PTR_ERR((void const *)req); err = (int )tmp___24; goto out; } else { } req->r_inode = inode; ihold(inode); req->r_num_caps = 1; if ((flags & 576) != 0) { parent_inode = ceph_get_dentry_parent_inode(file->f_path.dentry); } else { } err = ceph_mdsc_do_request(mdsc, parent_inode, req); iput(parent_inode); if (err == 0) { err = ceph_init_file(inode, file, req->r_fmode); } else { } ceph_mdsc_put_request(req); descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_open"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : open result=%d on %llx.%llx\n"; descriptor___3.lineno = 273U; descriptor___3.flags = 0U; tmp___29 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___29 != 0L) { tmp___26 = ceph_inode(inode); tmp___27 = ceph_inode(inode); tmp___28 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : open result=%d on %llx.%llx\n", 3, (char *)" ", tmp___28, 273, err, tmp___27->i_vino.ino, tmp___26->i_vino.snap); } else { } out: ; return (err); } } int ceph_atomic_open(struct inode *dir , struct dentry *dentry , struct file *file , unsigned int flags , umode_t mode , int *opened ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; struct dentry *dn ; int err ; struct _ddebug descriptor ; int tmp___0 ; char const *tmp___1 ; long tmp___2 ; long tmp___3 ; long tmp___4 ; long tmp___5 ; long tmp___6 ; int tmp___7 ; struct _ddebug descriptor___0 ; char const *tmp___8 ; long tmp___9 ; struct _ddebug descriptor___1 ; char const *tmp___10 ; long tmp___11 ; struct _ddebug descriptor___2 ; char const *tmp___12 ; long tmp___13 ; { tmp = ceph_sb_to_client(dir->i_sb); fsc = tmp; mdsc = fsc->mdsc; descriptor.modname = "ceph"; descriptor.function = "ceph_atomic_open"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : atomic_open %p dentry %p \'%.*s\' %s flags %d mode 0%o\n"; descriptor.lineno = 295U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___0 = d_unhashed(dentry); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : atomic_open %p dentry %p \'%.*s\' %s flags %d mode 0%o\n", 3, (char *)" ", tmp___1, 295, dir, dentry, dentry->d_name.ldv_11489.ldv_11487.len, dentry->d_name.name, tmp___0 != 0 ? (char *)"unhashed" : (char *)"hashed", flags, (int )mode); } else { } if (dentry->d_name.ldv_11489.ldv_11487.len > 255U) { return (-36); } else { } err = ceph_init_dentry(dentry); if (err < 0) { return (err); } else { } req = prepare_open_request(dir->i_sb, (int )flags, (int )mode); tmp___4 = IS_ERR((void const *)req); if (tmp___4 != 0L) { tmp___3 = PTR_ERR((void const *)req); return ((int )tmp___3); } else { } req->r_dentry = dget(dentry); req->r_num_caps = 2; if ((flags & 64U) != 0U) { req->r_dentry_drop = 256; req->r_dentry_unless = 512; } else { } req->r_locked_dir = dir; err = ceph_mdsc_do_request(mdsc, (flags & 576U) != 0U ? dir : 0, req); err = ceph_handle_snapdir(req, dentry, err); if ((err == 0 && (flags & 64U) != 0U) && (unsigned int )(req->r_reply_info.head)->is_dentry == 0U) { err = ceph_handle_notrace_create(dir, dentry); } else { } tmp___7 = d_unhashed(dentry); if (tmp___7 != 0) { dn = ceph_finish_lookup(req, dentry, err); tmp___6 = IS_ERR((void const *)dn); if (tmp___6 != 0L) { tmp___5 = PTR_ERR((void const *)dn); err = (int )tmp___5; } else { } } else { dn = 0; } if (err != 0) { goto out_err; } else { } if (((unsigned long )dn != (unsigned long )((struct dentry *)0) || (unsigned long )dentry->d_inode == (unsigned long )((struct inode *)0)) || ((int )(dentry->d_inode)->i_mode & 61440) == 40960) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_atomic_open"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : atomic_open finish_no_open on dn %p\n"; descriptor___0.lineno = 334U; descriptor___0.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : atomic_open finish_no_open on dn %p\n", 3, (char *)" ", tmp___8, 334, dn); } else { } err = finish_no_open(file, dn); } else { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_atomic_open"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : atomic_open finish_open on dn %p\n"; descriptor___1.lineno = 337U; descriptor___1.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : atomic_open finish_open on dn %p\n", 3, (char *)" ", tmp___10, 337, dn); } else { } err = finish_open(file, dentry, & ceph_open, opened); } out_err: ceph_mdsc_put_request(req); descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_atomic_open"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : atomic_open result=%d\n"; descriptor___2.lineno = 343U; descriptor___2.flags = 0U; tmp___13 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___13 != 0L) { tmp___12 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : atomic_open result=%d\n", 3, (char *)" ", tmp___12, 343, err); } else { } return (err); } } int ceph_release(struct inode *inode , struct file *file ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_file_info *cf ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { tmp = ceph_inode(inode); ci = tmp; cf = (struct ceph_file_info *)file->private_data; descriptor.modname = "ceph"; descriptor.function = "ceph_release"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : release inode %p file %p\n"; descriptor.lineno = 352U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : release inode %p file %p\n", 3, (char *)" ", tmp___0, 352, inode, file); } else { } ceph_put_fmode(ci, (int )cf->fmode); if ((unsigned long )cf->last_readdir != (unsigned long )((struct ceph_mds_request *)0)) { ceph_mdsc_put_request(cf->last_readdir); } else { } kfree((void const *)cf->last_name); kfree((void const *)cf->dir_info); dput(cf->dentry); kmem_cache_free(ceph_file_cachep, (void *)cf); __wake_up(& ci->i_cap_wq, 3U, 0, 0); return (0); } } static int striped_read(struct inode *inode , u64 off , u64 len , struct page **pages , int num_pages , int *checkeof , bool o_direct , unsigned long buf_align ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___0 ; u64 pos ; u64 this_len ; int io_align ; int page_align ; int left ; int pages_left ; int read ; struct page **page_pos ; int ret ; bool hit_stripe ; bool was_short ; struct ceph_vino tmp___1 ; struct _ddebug descriptor ; char const *tmp___2 ; long tmp___3 ; int didpages ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; struct _ddebug descriptor___1 ; char const *tmp___6 ; long tmp___7 ; struct _ddebug descriptor___2 ; char const *tmp___8 ; long tmp___9 ; { tmp = ceph_inode_to_client(inode); fsc = tmp; tmp___0 = ceph_inode(inode); ci = tmp___0; pos = off; left = (int )len; page_pos = pages; pages_left = num_pages; read = 0; io_align = (int )off & 4095; more: ; if ((int )o_direct) { page_align = (int )(((unsigned int )pos - (unsigned int )io_align) + (unsigned int )buf_align) & 4095; } else { page_align = (int )pos & 4095; } this_len = (u64 )left; tmp___1 = ceph_vino(inode); ret = ceph_osdc_readpages(& (fsc->client)->osdc, tmp___1, & ci->i_layout, pos, & this_len, ci->i_truncate_seq, ci->i_truncate_size, page_pos, pages_left, page_align); if (ret == -2) { ret = 0; } else { } hit_stripe = (u64 )left > this_len; was_short = (bool )(ret >= 0 && (u64 )ret < this_len); descriptor.modname = "ceph"; descriptor.function = "striped_read"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : striped_read %llu~%u (read %u) got %d%s%s\n"; descriptor.lineno = 415U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : striped_read %llu~%u (read %u) got %d%s%s\n", 3, (char *)" ", tmp___2, 415, pos, left, read, ret, (int )hit_stripe ? (char *)" HITSTRIPE" : (char *)"", (int )was_short ? (char *)" SHORT" : (char *)""); } else { } if (ret > 0) { didpages = (page_align + ret) >> 12; if ((u64 )read < pos - off) { descriptor___0.modname = "ceph"; descriptor___0.function = "striped_read"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : zero gap %llu to %llu\n"; descriptor___0.lineno = 421U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : zero gap %llu to %llu\n", 3, (char *)" ", tmp___4, 421, (u64 )read + off, pos); } else { } ceph_zero_page_vector_range(page_align + read, (int )(((unsigned int )pos - (unsigned int )off) - (unsigned int )read), pages); } else { } pos = (u64 )ret + pos; read = (int )((unsigned int )pos - (unsigned int )off); left = left - ret; page_pos = page_pos + (unsigned long )didpages; pages_left = pages_left - didpages; if (left != 0 && (int )hit_stripe) { goto more; } else { } } else { } if ((int )was_short) { if ((u64 )left + pos > (unsigned long long )inode->i_size) { *checkeof = 1; } else { } if (left > 0 && (unsigned long long )inode->i_size > pos) { if ((u64 )left + pos > (unsigned long long )inode->i_size) { left = (int )((unsigned int )inode->i_size - (unsigned int )pos); } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "striped_read"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : zero tail %d\n"; descriptor___1.lineno = 446U; descriptor___1.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : zero tail %d\n", 3, (char *)" ", tmp___6, 446, left); } else { } ceph_zero_page_vector_range(page_align + read, left, pages); read = read + left; } else { } } else { } if (ret >= 0) { ret = read; } else { } descriptor___2.modname = "ceph"; descriptor___2.function = "striped_read"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : striped_read returns %d\n"; descriptor___2.lineno = 455U; descriptor___2.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : striped_read returns %d\n", 3, (char *)" ", tmp___8, 455, ret); } else { } return (ret); } } static ssize_t ceph_sync_read(struct file *file , char *data , unsigned int len , loff_t *poff , int *checkeof ) { struct inode *inode ; struct page **pages ; u64 off ; int num_pages ; int ret ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; long tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; { inode = (file->f_path.dentry)->d_inode; off = (u64 )*poff; descriptor.modname = "ceph"; descriptor.function = "ceph_sync_read"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : sync_read on file %p %llu~%u %s\n"; descriptor.lineno = 474U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : sync_read on file %p %llu~%u %s\n", 3, (char *)" ", tmp, 474, file, off, len, (file->f_flags & 16384U) != 0U ? (char *)"O_DIRECT" : (char *)""); } else { } if ((file->f_flags & 16384U) != 0U) { num_pages = calc_pages_for((u64 )data, (u64 )len); pages = ceph_get_direct_page_vector((char const *)data, num_pages, 1); } else { num_pages = calc_pages_for(off, (u64 )len); pages = ceph_alloc_page_vector(num_pages, 80U); } tmp___2 = IS_ERR((void const *)pages); if (tmp___2 != 0L) { tmp___1 = PTR_ERR((void const *)pages); return (tmp___1); } else { } ret = filemap_write_and_wait(inode->i_mapping); if (ret < 0) { goto done; } else { } ret = striped_read(inode, off, (u64 )len, pages, num_pages, checkeof, (file->f_flags & 16384U) != 0U, (unsigned long )data & 4095UL); if (ret >= 0 && (file->f_flags & 16384U) == 0U) { ret = ceph_copy_page_vector_to_user(pages, data, (loff_t )off, (size_t )ret); } else { } if (ret >= 0) { *poff = (loff_t )((u64 )ret + off); } else { } done: ; if ((file->f_flags & 16384U) != 0U) { ceph_put_page_vector(pages, num_pages, 1); } else { ceph_release_page_vector(pages, num_pages); } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_sync_read"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : sync_read result %d\n"; descriptor___0.lineno = 510U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : sync_read result %d\n", 3, (char *)" ", tmp___3, 510, ret); } else { } return ((ssize_t )ret); } } static void sync_write_commit(struct ceph_osd_request *req , struct ceph_msg *msg ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { tmp = ceph_inode(req->r_inode); ci = tmp; descriptor.modname = "ceph"; descriptor.function = "sync_write_commit"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : sync_write_commit %p tid %llu\n"; descriptor.lineno = 523U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : sync_write_commit %p tid %llu\n", 3, (char *)" ", tmp___0, 523, req, req->r_tid); } else { } spin_lock(& ci->i_unsafe_lock); list_del_init(& req->r_unsafe_item); spin_unlock(& ci->i_unsafe_lock); ceph_put_cap_refs(ci, 4096); return; } } static ssize_t ceph_sync_write(struct file *file , char const *data , size_t left , loff_t *offset ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp___0 ; struct ceph_osd_request *req ; struct page **pages ; int num_pages ; unsigned long long pos ; u64 len ; int written ; int flags ; int do_sync ; int check_caps ; int page_align ; int io_align ; unsigned long buf_align ; int ret ; struct timespec mtime ; struct timespec tmp___1 ; u64 tmp___2 ; struct _ddebug descriptor ; char const *tmp___3 ; long tmp___4 ; loff_t tmp___5 ; struct _ddebug descriptor___0 ; char const *tmp___6 ; long tmp___7 ; struct ceph_vino tmp___8 ; long tmp___9 ; long tmp___10 ; long tmp___11 ; long tmp___12 ; long tmp___13 ; long tmp___14 ; loff_t tmp___15 ; struct ceph_inode_info *tmp___16 ; { inode = (file->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_inode_to_client(inode); fsc = tmp___0; written = 0; do_sync = 0; check_caps = 0; tmp___1 = current_kernel_time(); mtime = tmp___1; tmp___2 = ceph_snap((file->f_path.dentry)->d_inode); if (tmp___2 != 0xfffffffffffffffeULL) { return (-30L); } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_sync_write"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : sync_write on file %p %lld~%u %s\n"; descriptor.lineno = 562U; descriptor.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : sync_write on file %p %lld~%u %s\n", 3, (char *)" ", tmp___3, 562, file, *offset, (unsigned int )left, (file->f_flags & 16384U) != 0U ? (char *)"O_DIRECT" : (char *)""); } else { } if ((file->f_flags & 1024U) != 0U) { tmp___5 = i_size_read((struct inode const *)inode); pos = (unsigned long long )tmp___5; } else { pos = (unsigned long long )*offset; } ret = filemap_write_and_wait_range(inode->i_mapping, (loff_t )pos, (loff_t )(pos + (unsigned long long )left)); if (ret < 0) { return ((ssize_t )ret); } else { } ret = invalidate_inode_pages2_range(inode->i_mapping, (unsigned long )(pos >> 12), (unsigned long )((pos + (unsigned long long )left) >> 12)); if (ret < 0) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_sync_write"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : invalidate_inode_pages2_range returned %d\n"; descriptor___0.lineno = 577U; descriptor___0.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : invalidate_inode_pages2_range returned %d\n", 3, (char *)" ", tmp___6, 577, ret); } else { } } else { } flags = 100; if ((file->f_flags & 1069056U) == 0U) { flags = flags | 1; } else { do_sync = 1; } more: io_align = (int )pos & 4095; buf_align = (unsigned long )data & 4095UL; len = (u64 )left; if ((file->f_flags & 16384U) != 0U) { page_align = (int )(((unsigned int )pos - (unsigned int )io_align) + (unsigned int )buf_align) & 4095; num_pages = calc_pages_for((u64 )data, len); } else { page_align = (int )pos & 4095; num_pages = calc_pages_for(pos, len); } tmp___8 = ceph_vino(inode); req = ceph_osdc_new_request(& (fsc->client)->osdc, & ci->i_layout, tmp___8, pos, & len, 8705, flags, (ci->i_snap_realm)->cached_context, do_sync, ci->i_truncate_seq, ci->i_truncate_size, & mtime, 0, 2, page_align); tmp___10 = IS_ERR((void const *)req); if (tmp___10 != 0L) { tmp___9 = PTR_ERR((void const *)req); return (tmp___9); } else { } if ((file->f_flags & 16384U) != 0U) { pages = ceph_get_direct_page_vector(data, num_pages, 0); tmp___12 = IS_ERR((void const *)pages); if (tmp___12 != 0L) { tmp___11 = PTR_ERR((void const *)pages); ret = (int )tmp___11; goto out; } else { } truncate_inode_pages_range(inode->i_mapping, (loff_t )pos, (loff_t )((pos + len) | 4095ULL)); } else { pages = ceph_alloc_page_vector(num_pages, 80U); tmp___14 = IS_ERR((void const *)pages); if (tmp___14 != 0L) { tmp___13 = PTR_ERR((void const *)pages); ret = (int )tmp___13; goto out; } else { } ret = ceph_copy_user_to_page_vector(pages, data, (loff_t )pos, (size_t )len); if (ret < 0) { ceph_release_page_vector(pages, num_pages); goto out; } else { } if ((file->f_flags & 1052672U) == 0U) { req->r_safe_callback = & sync_write_commit; req->r_own_pages = 1; } else { } } req->r_pages = pages; req->r_num_pages = (unsigned int )num_pages; req->r_inode = inode; ret = ceph_osdc_start_request(& (fsc->client)->osdc, req, 0); if (ret == 0) { if ((unsigned long )req->r_safe_callback != (unsigned long )((void (*)(struct ceph_osd_request * , struct ceph_msg * ))0)) { spin_lock(& ci->i_unsafe_lock); list_add_tail(& req->r_unsafe_item, & ci->i_unsafe_writes); spin_unlock(& ci->i_unsafe_lock); ceph_get_cap_refs(ci, 4096); } else { } ret = ceph_osdc_wait_request(& (fsc->client)->osdc, req); if (ret < 0 && (unsigned long )req->r_safe_callback != (unsigned long )((void (*)(struct ceph_osd_request * , struct ceph_msg * ))0)) { spin_lock(& ci->i_unsafe_lock); list_del_init(& req->r_unsafe_item); spin_unlock(& ci->i_unsafe_lock); ceph_put_cap_refs(ci, 4096); } else { } } else { } if ((file->f_flags & 16384U) != 0U) { ceph_put_page_vector(pages, num_pages, 0); } else if ((file->f_flags & 1052672U) != 0U) { ceph_release_page_vector(pages, num_pages); } else { } out: ceph_osdc_put_request(req); if (ret == 0) { pos = pos + len; written = (int )((unsigned int )len + (unsigned int )written); left = (size_t )((unsigned long long )left - len); data = data + (unsigned long )written; if (left != 0UL) { goto more; } else { } ret = written; *offset = (loff_t )pos; tmp___15 = i_size_read((struct inode const *)inode); if ((unsigned long long )tmp___15 < pos) { check_caps = ceph_inode_set_size(inode, (loff_t )pos); } else { } if (check_caps != 0) { tmp___16 = ceph_inode(inode); ceph_check_caps(tmp___16, 2, 0); } else { } } else { } return ((ssize_t )ret); } } static ssize_t ceph_aio_read(struct kiocb *iocb , struct iovec const *iov , unsigned long nr_segs , loff_t pos ) { struct file *filp ; struct ceph_file_info *fi ; loff_t *ppos ; size_t len ; struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; void *base ; ssize_t ret ; int want ; int got ; int checkeof ; int read ; struct _ddebug descriptor ; struct ceph_inode_info *tmp___0 ; struct ceph_inode_info *tmp___1 ; char const *tmp___2 ; long tmp___3 ; int tmp___4 ; struct _ddebug descriptor___0 ; char const *tmp___5 ; struct ceph_inode_info *tmp___6 ; struct ceph_inode_info *tmp___7 ; char const *tmp___8 ; long tmp___9 ; struct _ddebug descriptor___1 ; char const *tmp___10 ; struct ceph_inode_info *tmp___11 ; struct ceph_inode_info *tmp___12 ; char const *tmp___13 ; long tmp___14 ; int statret ; int tmp___15 ; struct _ddebug descriptor___2 ; char const *tmp___16 ; long tmp___17 ; { filp = iocb->ki_filp; fi = (struct ceph_file_info *)filp->private_data; ppos = & iocb->ki_pos; len = iov->iov_len; inode = (filp->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; base = iov->iov_base; got = 0; checkeof = 0; read = 0; descriptor.modname = "ceph"; descriptor.function = "ceph_aio_read"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : aio_read %p %llx.%llx %llu~%u trying to get caps on %p\n"; descriptor.lineno = 720U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___0 = ceph_inode(inode); tmp___1 = ceph_inode(inode); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : aio_read %p %llx.%llx %llu~%u trying to get caps on %p\n", 3, (char *)" ", tmp___2, 720, inode, tmp___1->i_vino.ino, tmp___0->i_vino.snap, pos, (unsigned int )len, inode); } else { } again: __ceph_do_pending_vmtruncate(inode); if (((int )fi->fmode & 4) != 0) { want = 33792; } else { want = 1024; } tmp___4 = ceph_get_caps(ci, 2048, want, & got, -1LL); ret = (ssize_t )tmp___4; if (ret < 0L) { goto out; } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_aio_read"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : aio_read %p %llx.%llx %llu~%u got cap refs on %s\n"; descriptor___0.lineno = 732U; descriptor___0.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___5 = ceph_cap_string(got); tmp___6 = ceph_inode(inode); tmp___7 = ceph_inode(inode); tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : aio_read %p %llx.%llx %llu~%u got cap refs on %s\n", 3, (char *)" ", tmp___8, 732, inode, tmp___7->i_vino.ino, tmp___6->i_vino.snap, pos, (unsigned int )len, tmp___5); } else { } if ((((got & 33792) == 0 || ((iocb->ki_filp)->f_flags & 16384U) != 0U) || ((inode->i_sb)->s_flags & 16UL) != 0UL) || (int )fi->flags & 1) { ret = ceph_sync_read(filp, (char *)base, (unsigned int )len, ppos, & checkeof); } else { ret = generic_file_aio_read(iocb, iov, nr_segs, pos); } out: descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_aio_read"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : aio_read %p %llx.%llx dropping cap refs on %s = %d\n"; descriptor___1.lineno = 745U; descriptor___1.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___10 = ceph_cap_string(got); tmp___11 = ceph_inode(inode); tmp___12 = ceph_inode(inode); tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : aio_read %p %llx.%llx dropping cap refs on %s = %d\n", 3, (char *)" ", tmp___13, 745, inode, tmp___12->i_vino.ino, tmp___11->i_vino.snap, tmp___10, (int )ret); } else { } ceph_put_cap_refs(ci, got); if (checkeof != 0 && ret >= 0L) { tmp___15 = ceph_do_getattr(inode, 256); statret = tmp___15; if (statret == 0 && *ppos < inode->i_size) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_aio_read"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : aio_read sync_read hit hole, ppos %lld < size %lld, reading more\n"; descriptor___2.lineno = 753U; descriptor___2.flags = 0U; tmp___17 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___17 != 0L) { tmp___16 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : aio_read sync_read hit hole, ppos %lld < size %lld, reading more\n", 3, (char *)" ", tmp___16, 753, *ppos, inode->i_size); } else { } read = (int )((unsigned int )ret + (unsigned int )read); base = base + (unsigned long )ret; len = len - (unsigned long )ret; checkeof = 0; goto again; } else { } } else { } if (ret >= 0L) { ret = (ssize_t )read + ret; } else { } return (ret); } } static ssize_t ceph_aio_write(struct kiocb *iocb , struct iovec const *iov , unsigned long nr_segs , loff_t pos ) { struct file *file ; struct ceph_file_info *fi ; struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_osd_client *osdc ; struct ceph_fs_client *tmp___0 ; loff_t endoff ; int got ; int ret ; int err ; int written ; u64 tmp___1 ; bool tmp___2 ; ssize_t tmp___3 ; bool tmp___4 ; struct _ddebug descriptor ; struct ceph_inode_info *tmp___5 ; struct ceph_inode_info *tmp___6 ; char const *tmp___7 ; long tmp___8 ; struct _ddebug descriptor___0 ; char const *tmp___9 ; struct ceph_inode_info *tmp___10 ; struct ceph_inode_info *tmp___11 ; char const *tmp___12 ; long tmp___13 ; ssize_t tmp___14 ; int dirty ; struct _ddebug descriptor___1 ; char const *tmp___15 ; struct ceph_inode_info *tmp___16 ; struct ceph_inode_info *tmp___17 ; char const *tmp___18 ; long tmp___19 ; struct _ddebug descriptor___2 ; struct ceph_inode_info *tmp___20 ; struct ceph_inode_info *tmp___21 ; char const *tmp___22 ; long tmp___23 ; { file = iocb->ki_filp; fi = (struct ceph_file_info *)file->private_data; inode = (file->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_sb_to_client(inode->i_sb); osdc = & (tmp___0->client)->osdc; endoff = (loff_t )((unsigned long long )iov->iov_len + (unsigned long long )pos); got = 0; tmp___1 = ceph_snap(inode); if (tmp___1 != 0xfffffffffffffffeULL) { return (-30L); } else { } retry_snap: written = 0; tmp___2 = ceph_osdmap_flag(osdc->osdmap, 2); if ((int )tmp___2) { return (-28L); } else { } __ceph_do_pending_vmtruncate(inode); if ((((iocb->ki_filp)->f_flags & 16384U) == 0U && ((inode->i_sb)->s_flags & 16UL) == 0UL) && ((int )fi->flags & 1) == 0) { tmp___3 = generic_file_aio_write(iocb, iov, nr_segs, pos); ret = (int )tmp___3; if (ret >= 0) { written = ret; } else { } if (ret >= 0 || ret == -529) { if ((file->f_flags & 1052672U) != 0U || (((((file->f_mapping)->host)->i_sb)->s_flags & 16UL) != 0UL || (int )((file->f_mapping)->host)->i_flags & 1)) { goto _L; } else { tmp___4 = ceph_osdmap_flag(osdc->osdmap, 1); if ((int )tmp___4) { _L: /* CIL Label */ err = vfs_fsync_range(file, pos, ((loff_t )written + pos) + -1LL, 1); if (err < 0) { ret = err; } else { } } else { } } } else { } if ((ret < 0 && ret != -11) || (loff_t )written + pos >= endoff) { goto out; } else { } } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_aio_write"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : aio_write %p %llx.%llx %llu~%u getting caps. i_size %llu\n"; descriptor.lineno = 824U; descriptor.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___5 = ceph_inode(inode); tmp___6 = ceph_inode(inode); tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : aio_write %p %llx.%llx %llu~%u getting caps. i_size %llu\n", 3, (char *)" ", tmp___7, 824, inode, tmp___6->i_vino.ino, tmp___5->i_vino.snap, (loff_t )written + pos, (unsigned int )iov->iov_len - (unsigned int )written, inode->i_size); } else { } ret = ceph_get_caps(ci, 4096, 0, & got, endoff); if (ret < 0) { goto out; } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_aio_write"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : aio_write %p %llx.%llx %llu~%u got cap refs on %s\n"; descriptor___0.lineno = 831U; descriptor___0.flags = 0U; tmp___13 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___13 != 0L) { tmp___9 = ceph_cap_string(got); tmp___10 = ceph_inode(inode); tmp___11 = ceph_inode(inode); tmp___12 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : aio_write %p %llx.%llx %llu~%u got cap refs on %s\n", 3, (char *)" ", tmp___12, 831, inode, tmp___11->i_vino.ino, tmp___10->i_vino.snap, (loff_t )written + pos, (unsigned int )iov->iov_len - (unsigned int )written, tmp___9); } else { } tmp___14 = ceph_sync_write(file, (char const *)iov->iov_base + (unsigned long )written, (unsigned long )iov->iov_len - (unsigned long )written, & iocb->ki_pos); ret = (int )tmp___14; if (ret >= 0) { spin_lock(& ci->i_ceph_lock); dirty = __ceph_mark_dirty_caps(ci, 4096); spin_unlock(& ci->i_ceph_lock); if (dirty != 0) { __mark_inode_dirty(inode, dirty); } else { } } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_aio_write"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : aio_write %p %llx.%llx %llu~%u dropping cap refs on %s\n"; descriptor___1.lineno = 844U; descriptor___1.flags = 0U; tmp___19 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___19 != 0L) { tmp___15 = ceph_cap_string(got); tmp___16 = ceph_inode(inode); tmp___17 = ceph_inode(inode); tmp___18 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : aio_write %p %llx.%llx %llu~%u dropping cap refs on %s\n", 3, (char *)" ", tmp___18, 844, inode, tmp___17->i_vino.ino, tmp___16->i_vino.snap, (loff_t )written + pos, (unsigned int )iov->iov_len - (unsigned int )written, tmp___15); } else { } ceph_put_cap_refs(ci, got); out: ; if (ret == -85) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_aio_write"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : aio_write %p %llx.%llx %llu~%u got EOLDSNAPC, retrying\n"; descriptor___2.lineno = 849U; descriptor___2.flags = 0U; tmp___23 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___23 != 0L) { tmp___20 = ceph_inode(inode); tmp___21 = ceph_inode(inode); tmp___22 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/file.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : aio_write %p %llx.%llx %llu~%u got EOLDSNAPC, retrying\n", 3, (char *)" ", tmp___22, 849, inode, tmp___21->i_vino.ino, tmp___20->i_vino.snap, pos, (unsigned int )iov->iov_len); } else { } goto retry_snap; } else { } return ((ssize_t )ret); } } static loff_t ceph_llseek(struct file *file , loff_t offset , int whence ) { struct inode *inode ; int ret ; { inode = (file->f_mapping)->host; ldv_mutex_lock_59(& inode->i_mutex); __ceph_do_pending_vmtruncate(inode); if ((whence == 2 || whence == 3) || whence == 4) { ret = ceph_do_getattr(inode, 256); if (ret < 0) { offset = (loff_t )ret; goto out; } else { } } else { } switch (whence) { case 2: offset = inode->i_size + offset; goto ldv_29949; case 1: ; if (offset == 0LL) { offset = file->f_pos; goto out; } else { } offset = file->f_pos + offset; goto ldv_29949; case 3: ; if (inode->i_size <= offset) { ret = -6; goto out; } else { } goto ldv_29949; case 4: ; if (inode->i_size <= offset) { ret = -6; goto out; } else { } offset = inode->i_size; goto ldv_29949; } ldv_29949: ; if (offset < 0LL || (inode->i_sb)->s_maxbytes < offset) { offset = -22LL; goto out; } else { } if (file->f_pos != offset) { file->f_pos = offset; file->f_version = 0ULL; } else { } out: ldv_mutex_unlock_60(& inode->i_mutex); return (offset); } } struct file_operations const ceph_file_fops = {0, & ceph_llseek, & do_sync_read, & do_sync_write, & ceph_aio_read, & ceph_aio_write, 0, 0, & ceph_ioctl, & ceph_ioctl, & ceph_mmap, & ceph_open, 0, & ceph_release, & ceph_fsync, 0, 0, & ceph_lock, 0, 0, 0, & ceph_flock, & generic_file_splice_write, & generic_file_splice_read, 0, 0, 0}; void ldv_main3_sequence_infinite_withcheck_stateful(void) { struct inode *var_group1 ; struct file *var_group2 ; int res_ceph_open_2 ; loff_t var_ceph_llseek_11_p1 ; int var_ceph_llseek_11_p2 ; struct kiocb *var_group3 ; struct iovec const *var_ceph_aio_read_9_p1 ; unsigned long var_ceph_aio_read_9_p2 ; loff_t var_ceph_aio_read_9_p3 ; struct iovec const *var_ceph_aio_write_10_p1 ; unsigned long var_ceph_aio_write_10_p2 ; loff_t var_ceph_aio_write_10_p3 ; int ldv_s_ceph_file_fops_file_operations ; int tmp ; int tmp___0 ; { ldv_s_ceph_file_fops_file_operations = 0; LDV_IN_INTERRUPT = 1; ldv_initialize(); goto ldv_29992; ldv_29991: tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_s_ceph_file_fops_file_operations == 0) { ldv_handler_precall(); res_ceph_open_2 = ceph_open(var_group1, var_group2); ldv_check_return_value(res_ceph_open_2); if (res_ceph_open_2 != 0) { goto ldv_module_exit; } else { } ldv_s_ceph_file_fops_file_operations = ldv_s_ceph_file_fops_file_operations + 1; } else { } goto ldv_29985; case 1: ; if (ldv_s_ceph_file_fops_file_operations == 1) { ldv_handler_precall(); ceph_llseek(var_group2, var_ceph_llseek_11_p1, var_ceph_llseek_11_p2); ldv_s_ceph_file_fops_file_operations = ldv_s_ceph_file_fops_file_operations + 1; } else { } goto ldv_29985; case 2: ; if (ldv_s_ceph_file_fops_file_operations == 2) { ldv_handler_precall(); ceph_release(var_group1, var_group2); ldv_s_ceph_file_fops_file_operations = 0; } else { } goto ldv_29985; case 3: ldv_handler_precall(); ceph_aio_read(var_group3, var_ceph_aio_read_9_p1, var_ceph_aio_read_9_p2, var_ceph_aio_read_9_p3); goto ldv_29985; case 4: ldv_handler_precall(); ceph_aio_write(var_group3, var_ceph_aio_write_10_p1, var_ceph_aio_write_10_p2, var_ceph_aio_write_10_p3); goto ldv_29985; default: ; goto ldv_29985; } ldv_29985: ; ldv_29992: tmp___0 = __VERIFIER_nondet_int(); if (tmp___0 != 0 || ldv_s_ceph_file_fops_file_operations != 0) { goto ldv_29991; } else { } ldv_module_exit: ; ldv_check_final_state(); return; } } void ldv_mutex_lock_55(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_56(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_57(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_58(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_59(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_i_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_60(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_i_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } extern void __bad_percpu_size(void) ; extern struct task_struct *current_task ; __inline static struct task_struct *get_current(void) { struct task_struct *pfo_ret__ ; { switch (8UL) { case 1UL: __asm__ ("movb %%gs:%P1,%0": "=q" (pfo_ret__): "p" (& current_task)); goto ldv_2861; case 2UL: __asm__ ("movw %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task)); goto ldv_2861; case 4UL: __asm__ ("movl %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task)); goto ldv_2861; case 8UL: __asm__ ("movq %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task)); goto ldv_2861; default: __bad_percpu_size(); } ldv_2861: ; return (pfo_ret__); } } void ldv_mutex_unlock_68(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_70(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_67(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_69(struct mutex *ldv_func_arg1 ) ; __inline static struct pid *get_pid(struct pid *pid ) { { if ((unsigned long )pid != (unsigned long )((struct pid *)0)) { atomic_inc(& pid->count); } else { } return (pid); } } extern int posix_lock_file(struct file * , struct file_lock * , struct file_lock * ) ; extern int flock_lock_file_wait(struct file * , struct file_lock * ) ; __inline static struct pid *task_tgid(struct task_struct *task ) { { return ((task->group_leader)->pids[0].pid); } } void ceph_count_locks(struct inode *inode , int *fcntl_count , int *flock_count ) ; int ceph_encode_locks(struct inode *inode , struct ceph_pagelist *pagelist , int num_fcntl_locks , int num_flock_locks ) ; int lock_to_ceph_filelock(struct file_lock *lock , struct ceph_filelock *cephlock ) ; extern int ceph_pagelist_append(struct ceph_pagelist * , void const * , size_t ) ; static int ceph_lock_message(u8 lock_type , u16 operation , struct file *file , int cmd , u8 wait , struct file_lock *fl ) { struct inode *inode ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; struct ceph_mds_request *req ; int err ; u64 length ; long tmp___0 ; long tmp___1 ; struct _ddebug descriptor ; char const *tmp___2 ; long tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; { inode = (file->f_path.dentry)->d_inode; tmp = ceph_sb_to_client(inode->i_sb); mdsc = tmp->mdsc; length = 0ULL; req = ceph_mdsc_create_request(mdsc, (int )operation, 2); tmp___1 = IS_ERR((void const *)req); if (tmp___1 != 0L) { tmp___0 = PTR_ERR((void const *)req); return ((int )tmp___0); } else { } req->r_inode = inode; ihold(inode); if (fl->fl_end == 9223372036854775807LL) { length = 0ULL; } else { length = (u64 )((fl->fl_end - fl->fl_start) + 1LL); } descriptor.modname = "ceph"; descriptor.function = "ceph_lock_message"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_lock_message: rule: %d, op: %d, pid: %llu, start: %llu, length: %llu, wait: %d, type: %d"; descriptor.lineno = 109U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_lock_message: rule: %d, op: %d, pid: %llu, start: %llu, length: %llu, wait: %d, type: %d", 3, (char *)" ", tmp___2, 109, (int )lock_type, (int )operation, (unsigned long long )fl->fl_pid, fl->fl_start, length, (int )wait, (int )fl->fl_type); } else { } req->r_args.filelock_change.rule = lock_type; req->r_args.filelock_change.type = (__u8 )cmd; req->r_args.filelock_change.pid = (unsigned long long )fl->fl_pid; req->r_args.filelock_change.pid_namespace = (unsigned long long )fl->fl_nspid; req->r_args.filelock_change.start = (unsigned long long )fl->fl_start; req->r_args.filelock_change.length = length; req->r_args.filelock_change.wait = wait; err = ceph_mdsc_do_request(mdsc, inode, req); if ((unsigned int )operation == 272U) { fl->fl_pid = (unsigned int )(req->r_reply_info.ldv_29667.filelock_reply)->pid; if ((unsigned int )(req->r_reply_info.ldv_29667.filelock_reply)->type == 1U) { fl->fl_type = 0U; } else if ((unsigned int )(req->r_reply_info.ldv_29667.filelock_reply)->type == 2U) { fl->fl_type = 1U; } else { fl->fl_type = 2U; } fl->fl_start = (loff_t )(req->r_reply_info.ldv_29667.filelock_reply)->start; length = (req->r_reply_info.ldv_29667.filelock_reply)->start + (req->r_reply_info.ldv_29667.filelock_reply)->length; if (length != 0ULL) { fl->fl_end = (loff_t )(length - 1ULL); } else { fl->fl_end = 0LL; } } else { } ceph_mdsc_put_request(req); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_lock_message"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : ceph_lock_message: rule: %d, op: %d, pid: %llu, start: %llu, length: %llu, wait: %d, type: %d, err code %d"; descriptor___0.lineno = 146U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : ceph_lock_message: rule: %d, op: %d, pid: %llu, start: %llu, length: %llu, wait: %d, type: %d, err code %d", 3, (char *)" ", tmp___4, 146, (int )lock_type, (int )operation, (unsigned long long )fl->fl_pid, fl->fl_start, length, (int )wait, (int )fl->fl_type, err); } else { } return (err); } } int ceph_lock(struct file *file , int cmd , struct file_lock *fl ) { u8 lock_cmd ; int err ; u8 wait ; u16 op ; struct task_struct *tmp ; struct pid *tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___2 ; char const *tmp___7 ; long tmp___8 ; { wait = 0U; op = 4361U; tmp = get_current(); tmp___0 = task_tgid(tmp); fl->fl_nspid = get_pid(tmp___0); descriptor.modname = "ceph"; descriptor.function = "ceph_lock"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_lock, fl_pid:%d"; descriptor.lineno = 162U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_lock, fl_pid:%d", 3, (char *)" ", tmp___1, 162, fl->fl_pid); } else { } if (cmd == 7) { wait = 1U; } else { } if (cmd == 5) { op = 272U; } else { } if ((unsigned int )fl->fl_type == 0U) { lock_cmd = 1U; } else if ((unsigned int )fl->fl_type == 1U) { lock_cmd = 2U; } else { lock_cmd = 4U; } err = ceph_lock_message(1, (int )op, file, (int )lock_cmd, (int )wait, fl); if (err == 0) { if ((unsigned int )op != 272U) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_lock"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mds locked, locking locally"; descriptor___0.lineno = 180U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mds locked, locking locally", 3, (char *)" ", tmp___3, 180); } else { } err = posix_lock_file(file, fl, 0); if (err != 0 && (unsigned int )op == 4361U) { ceph_lock_message(1, (int )op, file, 4, 0, fl); descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_lock"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : got %d on posix_lock_file, undid lock"; descriptor___1.lineno = 189U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : got %d on posix_lock_file, undid lock", 3, (char *)" ", tmp___5, 189, err); } else { } } else { } } else if (err == -512) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_lock"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : undoing lock\n"; descriptor___2.lineno = 194U; descriptor___2.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : undoing lock\n", 3, (char *)" ", tmp___7, 194); } else { } ceph_lock_message(1, (int )op, file, 4, 0, fl); } else { } } else { } return (err); } } int ceph_flock(struct file *file , int cmd , struct file_lock *fl ) { u8 lock_cmd ; int err ; u8 wait ; struct task_struct *tmp ; struct pid *tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; { wait = 1U; tmp = get_current(); tmp___0 = task_tgid(tmp); fl->fl_nspid = get_pid(tmp___0); descriptor.modname = "ceph"; descriptor.function = "ceph_flock"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_flock, fl_pid:%d"; descriptor.lineno = 208U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_flock, fl_pid:%d", 3, (char *)" ", tmp___1, 208, fl->fl_pid); } else { } if ((cmd & 4) != 0) { wait = 0U; } else { } cmd = cmd & 11; if (cmd == 1) { lock_cmd = 1U; } else if (cmd == 2) { lock_cmd = 2U; } else { lock_cmd = 4U; } err = ceph_lock_message(2, 4361, file, (int )lock_cmd, (int )wait, fl); if (err == 0) { err = flock_lock_file_wait(file, fl); if (err != 0) { ceph_lock_message(2, 4361, file, 4, 0, fl); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_flock"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : got %d on flock_lock_file_wait, undid lock"; descriptor___0.lineno = 231U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : got %d on flock_lock_file_wait, undid lock", 3, (char *)" ", tmp___3, 231, err); } else { } } else { } } else if (err == -512) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_flock"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : undoing lock\n"; descriptor___1.lineno = 234U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : undoing lock\n", 3, (char *)" ", tmp___5, 234); } else { } ceph_lock_message(2, 4361, file, 4, 0, fl); } else { } return (err); } } void ceph_count_locks(struct inode *inode , int *fcntl_count , int *flock_count ) { struct file_lock *lock ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { *fcntl_count = 0; *flock_count = 0; lock = inode->i_flock; goto ldv_28955; ldv_28954: ; if ((int )lock->fl_flags & 1) { *fcntl_count = *fcntl_count + 1; } else if ((lock->fl_flags & 2U) != 0U) { *flock_count = *flock_count + 1; } else { } lock = lock->fl_next; ldv_28955: ; if ((unsigned long )lock != (unsigned long )((struct file_lock *)0)) { goto ldv_28954; } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_count_locks"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : counted %d flock locks and %d fcntl locks"; descriptor.lineno = 261U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : counted %d flock locks and %d fcntl locks", 3, (char *)" ", tmp, 261, *flock_count, *fcntl_count); } else { } return; } } int ceph_encode_locks(struct inode *inode , struct ceph_pagelist *pagelist , int num_fcntl_locks , int num_flock_locks ) { struct file_lock *lock ; struct ceph_filelock cephlock ; int err ; int seen_fcntl ; int seen_flock ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { err = 0; seen_fcntl = 0; seen_flock = 0; descriptor.modname = "ceph"; descriptor.function = "ceph_encode_locks"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : encoding %d flock and %d fcntl locks"; descriptor.lineno = 282U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : encoding %d flock and %d fcntl locks", 3, (char *)" ", tmp, 282, num_flock_locks, num_fcntl_locks); } else { } err = ceph_pagelist_append(pagelist, (void const *)(& num_fcntl_locks), 4UL); if (err != 0) { goto fail; } else { } lock = inode->i_flock; goto ldv_28974; ldv_28973: ; if ((int )lock->fl_flags & 1) { seen_fcntl = seen_fcntl + 1; if (seen_fcntl > num_fcntl_locks) { err = -28; goto fail; } else { } err = lock_to_ceph_filelock(lock, & cephlock); if (err != 0) { goto fail; } else { } err = ceph_pagelist_append(pagelist, (void const *)(& cephlock), 41UL); } else { } if (err != 0) { goto fail; } else { } lock = lock->fl_next; ldv_28974: ; if ((unsigned long )lock != (unsigned long )((struct file_lock *)0)) { goto ldv_28973; } else { } err = ceph_pagelist_append(pagelist, (void const *)(& num_flock_locks), 4UL); if (err != 0) { goto fail; } else { } lock = inode->i_flock; goto ldv_28977; ldv_28976: ; if ((lock->fl_flags & 2U) != 0U) { seen_flock = seen_flock + 1; if (seen_flock > num_flock_locks) { err = -28; goto fail; } else { } err = lock_to_ceph_filelock(lock, & cephlock); if (err != 0) { goto fail; } else { } err = ceph_pagelist_append(pagelist, (void const *)(& cephlock), 41UL); } else { } if (err != 0) { goto fail; } else { } lock = lock->fl_next; ldv_28977: ; if ((unsigned long )lock != (unsigned long )((struct file_lock *)0)) { goto ldv_28976; } else { } fail: ; return (err); } } int lock_to_ceph_filelock(struct file_lock *lock , struct ceph_filelock *cephlock ) { int err ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { err = 0; cephlock->start = (unsigned long long )lock->fl_start; cephlock->length = (unsigned long long )((lock->fl_end - lock->fl_start) + 1LL); cephlock->client = 0ULL; cephlock->pid = (unsigned long long )lock->fl_pid; cephlock->pid_namespace = (unsigned long long )lock->fl_nspid; switch ((int )lock->fl_type) { case 0: cephlock->type = 1U; goto ldv_28985; case 1: cephlock->type = 2U; goto ldv_28985; case 2: cephlock->type = 4U; goto ldv_28985; default: descriptor.modname = "ceph"; descriptor.function = "lock_to_ceph_filelock"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : Have unknown lock type %d"; descriptor.lineno = 352U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/locks.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : Have unknown lock type %d", 3, (char *)" ", tmp, 352, (int )lock->fl_type); } else { } err = -22; } ldv_28985: ; return (err); } } void ldv_mutex_lock_67(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_68(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_69(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_70(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } __inline static int test_and_set_bit(int nr , unsigned long volatile *addr ) { int oldbit ; { __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; bts %2,%1\n\tsbb %0,%0": "=r" (oldbit), "+m" (*((long volatile *)addr)): "Ir" (nr): "memory"); return (oldbit); } } __inline static int test_and_set_bit_lock(int nr , unsigned long volatile *addr ) { int tmp ; { tmp = test_and_set_bit(nr, addr); return (tmp); } } __inline static int constant_test_bit(unsigned int nr , unsigned long const volatile *addr ) { { return ((int )((unsigned long )*(addr + (unsigned long )(nr / 64U)) >> ((int )nr & 63)) & 1); } } __inline static int variable_test_bit(int nr , unsigned long const volatile *addr ) { int oldbit ; { __asm__ volatile ("bt %2,%1\n\tsbb %0,%0": "=r" (oldbit): "m" (*((unsigned long *)addr)), "Ir" (nr)); return (oldbit); } } extern void __might_sleep(char const * , int , int ) ; extern void list_del(struct list_head * ) ; __inline static int atomic_dec_and_test(atomic_t *v ) { unsigned char c ; { __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; decl %0; sete %1": "+m" (v->counter), "=qm" (c): : "memory"); return ((unsigned int )c != 0U); } } __inline static long atomic64_sub_return(long i , atomic64_t *v ) { long tmp ; { tmp = atomic64_add_return(- i, v); return (tmp); } } __inline static long atomic_long_dec_return(atomic_long_t *l ) { atomic64_t *v ; long tmp ; { v = l; tmp = atomic64_sub_return(1L, v); return (tmp); } } void ldv_mutex_unlock_76(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_78(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_75(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_77(struct mutex *ldv_func_arg1 ) ; extern unsigned long kernel_stack ; __inline static struct thread_info *current_thread_info(void) { struct thread_info *ti ; unsigned long pfo_ret__ ; { switch (8UL) { case 1UL: __asm__ ("movb %%gs:%P1,%0": "=q" (pfo_ret__): "p" (& kernel_stack)); goto ldv_6230; case 2UL: __asm__ ("movw %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack)); goto ldv_6230; case 4UL: __asm__ ("movl %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack)); goto ldv_6230; case 8UL: __asm__ ("movq %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack)); goto ldv_6230; default: __bad_percpu_size(); } ldv_6230: ti = (struct thread_info *)(pfo_ret__ - 8152UL); return (ti); } } __inline static int test_ti_thread_flag(struct thread_info *ti , int flag ) { int tmp ; { tmp = variable_test_bit(flag, (unsigned long const volatile *)(& ti->flags)); return (tmp); } } extern void _raw_spin_lock_irq(raw_spinlock_t * ) ; extern void _raw_spin_unlock_irq(raw_spinlock_t * ) ; __inline static void spin_lock_irq(spinlock_t *lock ) { { _raw_spin_lock_irq(& lock->ldv_5961.rlock); return; } } __inline static void spin_unlock_irq(spinlock_t *lock ) { { _raw_spin_unlock_irq(& lock->ldv_5961.rlock); return; } } extern void prepare_to_wait(wait_queue_head_t * , wait_queue_t * , int ) ; extern void finish_wait(wait_queue_head_t * , wait_queue_t * ) ; extern int autoremove_wake_function(wait_queue_t * , unsigned int , int , void * ) ; extern void *radix_tree_tag_set(struct radix_tree_root * , unsigned long , unsigned int ) ; extern void down_read(struct rw_semaphore * ) ; extern void up_read(struct rw_semaphore * ) ; extern void touch_atime(struct path * ) ; __inline static void file_accessed(struct file *file ) { { if ((file->f_flags & 262144U) == 0U) { touch_atime(& file->f_path); } else { } return; } } extern int generic_file_remap_pages(struct vm_area_struct * , unsigned long , unsigned long , unsigned long ) ; extern int file_update_time(struct file * ) ; extern void schedule(void) ; __inline static int test_tsk_thread_flag(struct task_struct *tsk , int flag ) { int tmp ; { tmp = test_ti_thread_flag((struct thread_info *)tsk->stack, flag); return (tmp); } } __inline static int signal_pending(struct task_struct *p ) { int tmp ; long tmp___0 ; { tmp = test_tsk_thread_flag(p, 2); tmp___0 = ldv__builtin_expect(tmp != 0, 0L); return ((int )tmp___0); } } extern void clear_bdi_congested(struct backing_dev_info * , int ) ; extern void set_bdi_congested(struct backing_dev_info * , int ) ; __inline static int PageLocked(struct page const *page ) { int tmp ; { tmp = constant_test_bit(0U, (unsigned long const volatile *)(& page->flags)); return (tmp); } } __inline static void SetPageError(struct page *page ) { { set_bit(1U, (unsigned long volatile *)(& page->flags)); return; } } __inline static int PageDirty(struct page const *page ) { int tmp ; { tmp = constant_test_bit(4U, (unsigned long const volatile *)(& page->flags)); return (tmp); } } __inline static int TestSetPageDirty(struct page *page ) { int tmp ; { tmp = test_and_set_bit(4, (unsigned long volatile *)(& page->flags)); return (tmp); } } __inline static void ClearPageChecked(struct page *page ) { { clear_bit(8, (unsigned long volatile *)(& page->flags)); return; } } __inline static int PagePrivate(struct page const *page ) { int tmp ; { tmp = constant_test_bit(11U, (unsigned long const volatile *)(& page->flags)); return (tmp); } } __inline static void SetPagePrivate(struct page *page ) { { set_bit(11U, (unsigned long volatile *)(& page->flags)); return; } } __inline static void ClearPagePrivate(struct page *page ) { { clear_bit(11, (unsigned long volatile *)(& page->flags)); return; } } __inline static int PageWriteback(struct page const *page ) { int tmp ; { tmp = constant_test_bit(13U, (unsigned long const volatile *)(& page->flags)); return (tmp); } } __inline static int PageSwapCache(struct page const *page ) { int tmp ; { tmp = constant_test_bit(16U, (unsigned long const volatile *)(& page->flags)); return (tmp); } } __inline static int PageUptodate(struct page *page ) { int ret ; int tmp ; { tmp = constant_test_bit(3U, (unsigned long const volatile *)(& page->flags)); ret = tmp; if (ret != 0) { __asm__ volatile ("": : : "memory"); } else { } return (ret); } } __inline static void SetPageUptodate(struct page *page ) { { __asm__ volatile ("": : : "memory"); set_bit(3U, (unsigned long volatile *)(& page->flags)); return; } } extern int test_set_page_writeback(struct page * ) ; __inline static void set_page_writeback(struct page *page ) { { test_set_page_writeback(page); return; } } extern void put_page(struct page * ) ; __inline static void *lowmem_page_address(struct page const *page ) { { return ((void *)((unsigned long )((unsigned long long )(((long )page + 24189255811072L) / 80L) << 12) + 0xffff880000000000UL)); } } __inline static unsigned long page_index(struct page *page ) { int tmp ; long tmp___0 ; { tmp = PageSwapCache((struct page const *)page); tmp___0 = ldv__builtin_expect(tmp != 0, 0L); if (tmp___0 != 0L) { return (page->ldv_15509.private); } else { } return (page->ldv_15493.ldv_15477.index); } } extern int generic_error_remove_page(struct address_space * , struct page * ) ; extern void account_page_dirtied(struct page * , struct address_space * ) ; extern int set_page_dirty(struct page * ) ; extern int clear_page_dirty_for_io(struct page * ) ; extern int filemap_fault(struct vm_area_struct * , struct vm_fault * ) ; __inline static void pagefault_disable(void) { struct thread_info *tmp ; { tmp = current_thread_info(); tmp->preempt_count = tmp->preempt_count + 1; __asm__ volatile ("": : : "memory"); return; } } __inline static void pagefault_enable(void) { struct thread_info *tmp ; { __asm__ volatile ("": : : "memory"); tmp = current_thread_info(); tmp->preempt_count = tmp->preempt_count + -1; __asm__ volatile ("": : : "memory"); return; } } __inline static void *kmap_atomic(struct page *page ) { void *tmp ; { pagefault_disable(); tmp = lowmem_page_address((struct page const *)page); return (tmp); } } __inline static void __kunmap_atomic(void *addr ) { { pagefault_enable(); return; } } __inline static void zero_user_segments(struct page *page , unsigned int start1 , unsigned int end1 , unsigned int start2 , unsigned int end2 ) { void *kaddr ; void *tmp ; long tmp___0 ; long tmp___1 ; { tmp = kmap_atomic(page); kaddr = tmp; tmp___0 = ldv__builtin_expect(end1 > 4096U, 0L); if (tmp___0 != 0L) { goto _L; } else { tmp___1 = ldv__builtin_expect(end2 > 4096U, 0L); if (tmp___1 != 0L) { _L: /* CIL Label */ __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/linux/highmem.h"), "i" (198), "i" (12UL)); ldv_24305: ; goto ldv_24305; } else { } } if (end1 > start1) { memset(kaddr + (unsigned long )start1, 0, (size_t )(end1 - start1)); } else { } if (end2 > start2) { memset(kaddr + (unsigned long )start2, 0, (size_t )(end2 - start2)); } else { } __kunmap_atomic(kaddr); return; } } __inline static void zero_user_segment(struct page *page , unsigned int start , unsigned int end ) { { zero_user_segments(page, start, end, 0U, 0U); return; } } __inline static void mapping_set_error(struct address_space *mapping , int error ) { long tmp ; { tmp = ldv__builtin_expect(error != 0, 0L); if (tmp != 0L) { if (error == -28) { set_bit(26U, (unsigned long volatile *)(& mapping->flags)); } else { set_bit(25U, (unsigned long volatile *)(& mapping->flags)); } } else { } return; } } extern struct page *grab_cache_page_write_begin(struct address_space * , unsigned long , unsigned int ) ; __inline static loff_t page_offset(struct page *page ) { { return ((long long )page->ldv_15493.ldv_15477.index << 12); } } extern void __lock_page(struct page * ) ; extern void unlock_page(struct page * ) ; __inline static int trylock_page(struct page *page ) { int tmp ; long tmp___0 ; { tmp = test_and_set_bit_lock(0, (unsigned long volatile *)(& page->flags)); tmp___0 = ldv__builtin_expect(tmp == 0, 1L); return ((int )tmp___0); } } __inline static void lock_page(struct page *page ) { int tmp ; { __might_sleep("include/linux/pagemap.h", 350, 0); tmp = trylock_page(page); if (tmp == 0) { __lock_page(page); } else { } return; } } extern void wait_on_page_bit(struct page * , int ) ; __inline static void wait_on_page_writeback(struct page *page ) { int tmp ; { tmp = PageWriteback((struct page const *)page); if (tmp != 0) { wait_on_page_bit(page, 13); } else { } return; } } extern void end_page_writeback(struct page * ) ; extern int add_to_page_cache_lru(struct page * , struct address_space * , unsigned long , gfp_t ) ; extern void __pagevec_release(struct pagevec * ) ; extern unsigned int pagevec_lookup_tag(struct pagevec * , struct address_space * , unsigned long * , int , unsigned int ) ; __inline static void pagevec_init(struct pagevec *pvec , int cold ) { { pvec->nr = 0UL; pvec->cold = (unsigned long )cold; return; } } __inline static void pagevec_reinit(struct pagevec *pvec ) { { pvec->nr = 0UL; return; } } __inline static unsigned int pagevec_count(struct pagevec *pvec ) { { return ((unsigned int )pvec->nr); } } __inline static unsigned int pagevec_space(struct pagevec *pvec ) { { return (14U - (unsigned int )pvec->nr); } } __inline static unsigned int pagevec_add(struct pagevec *pvec , struct page *page ) { unsigned long tmp ; unsigned int tmp___0 ; { tmp = pvec->nr; pvec->nr = pvec->nr + 1UL; pvec->pages[tmp] = page; tmp___0 = pagevec_space(pvec); return (tmp___0); } } __inline static void pagevec_release(struct pagevec *pvec ) { unsigned int tmp ; { tmp = pagevec_count(pvec); if (tmp != 0U) { __pagevec_release(pvec); } else { } return; } } extern void *mempool_alloc(mempool_t * , gfp_t ) ; extern void mempool_free(void * , mempool_t * ) ; extern int ceph_osdc_writepages(struct ceph_osd_client * , struct ceph_vino , struct ceph_file_layout * , struct ceph_snap_context * , u64 , u64 , u32 , u64 , struct timespec * , struct page ** , int , int , int , bool ) ; __inline static struct ceph_snap_context *ceph_get_snap_context(struct ceph_snap_context *sc ) { { if ((unsigned long )sc != (unsigned long )((struct ceph_snap_context *)0)) { atomic_inc(& sc->nref); } else { } return (sc); } } __inline static void ceph_put_snap_context(struct ceph_snap_context *sc ) { int tmp ; { if ((unsigned long )sc == (unsigned long )((struct ceph_snap_context *)0)) { return; } else { } tmp = atomic_dec_and_test(& sc->nref); if (tmp != 0) { kfree((void const *)sc); } else { } return; } } __inline static int ceph_caps_issued(struct ceph_inode_info *ci ) { int issued ; { spin_lock(& ci->i_ceph_lock); issued = __ceph_caps_issued(ci, 0); spin_unlock(& ci->i_ceph_lock); return (issued); } } int ceph_caps_revoking(struct ceph_inode_info *ci , int mask ) ; void ceph_put_wrbuffer_cap_refs(struct ceph_inode_info *ci , int nr , struct ceph_snap_context *snapc ) ; __inline static struct ceph_snap_context *page_snap_context(struct page *page ) { int tmp ; { tmp = PagePrivate((struct page const *)page); if (tmp != 0) { return ((struct ceph_snap_context *)page->ldv_15509.private); } else { } return (0); } } static int ceph_set_page_dirty(struct page *page ) { struct address_space *mapping ; struct inode *inode ; struct ceph_inode_info *ci ; int undo ; struct ceph_snap_context *snapc ; int tmp ; long tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; bool __warned ; int __ret_warn_once ; int tmp___6 ; int __ret_warn_on ; long tmp___7 ; long tmp___8 ; long tmp___9 ; unsigned long tmp___10 ; struct _ddebug descriptor___1 ; char const *tmp___11 ; long tmp___12 ; int tmp___13 ; long tmp___14 ; { mapping = page->mapping; undo = 0; tmp___0 = ldv__builtin_expect((unsigned long )mapping == (unsigned long )((struct address_space *)0), 0L); if (tmp___0 != 0L) { tmp = TestSetPageDirty(page); return (tmp == 0); } else { } tmp___3 = TestSetPageDirty(page); if (tmp___3 != 0) { descriptor.modname = "ceph"; descriptor.function = "ceph_set_page_dirty"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : %p set_page_dirty %p idx %lu -- already dirty\n"; descriptor.lineno = 153U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : %p set_page_dirty %p idx %lu -- already dirty\n", 3, (char *)" ", tmp___1, 153, mapping->host, page, page->ldv_15493.ldv_15477.index); } else { } return (0); } else { } inode = mapping->host; ci = ceph_inode(inode); snapc = ceph_get_snap_context((ci->i_snap_realm)->cached_context); spin_lock(& ci->i_ceph_lock); if ((unsigned long )ci->i_head_snapc == (unsigned long )((struct ceph_snap_context *)0)) { ci->i_head_snapc = ceph_get_snap_context(snapc); } else { } ci->i_wrbuffer_ref_head = ci->i_wrbuffer_ref_head + 1; if (ci->i_wrbuffer_ref == 0) { ihold(inode); } else { } ci->i_wrbuffer_ref = ci->i_wrbuffer_ref + 1; descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_set_page_dirty"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : %p set_page_dirty %p idx %lu head %d/%d -> %d/%d snapc %p seq %lld (%d snaps)\n"; descriptor___0.lineno = 179U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : %p set_page_dirty %p idx %lu head %d/%d -> %d/%d snapc %p seq %lld (%d snaps)\n", 3, (char *)" ", tmp___4, 179, mapping->host, page, page->ldv_15493.ldv_15477.index, ci->i_wrbuffer_ref + -1, ci->i_wrbuffer_ref_head + -1, ci->i_wrbuffer_ref, ci->i_wrbuffer_ref_head, snapc, snapc->seq, snapc->num_snaps); } else { } spin_unlock(& ci->i_ceph_lock); spin_lock_irq(& mapping->tree_lock); if ((unsigned long )page->mapping != (unsigned long )((struct address_space *)0)) { tmp___6 = PageUptodate(page); __ret_warn_once = tmp___6 == 0; tmp___9 = ldv__builtin_expect(__ret_warn_once != 0, 0L); if (tmp___9 != 0L) { __ret_warn_on = ! __warned; tmp___7 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___7 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 185); } else { } tmp___8 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___8 != 0L) { __warned = 1; } else { } } else { } ldv__builtin_expect(__ret_warn_once != 0, 0L); account_page_dirtied(page, page->mapping); tmp___10 = page_index(page); radix_tree_tag_set(& mapping->page_tree, tmp___10, 0U); page->ldv_15509.private = (unsigned long )snapc; SetPagePrivate(page); } else { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_set_page_dirty"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : ANON set_page_dirty %p (raced truncate?)\n"; descriptor___1.lineno = 197U; descriptor___1.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : ANON set_page_dirty %p (raced truncate?)\n", 3, (char *)" ", tmp___11, 197, page); } else { } undo = 1; } spin_unlock_irq(& mapping->tree_lock); if (undo != 0) { ceph_put_wrbuffer_cap_refs(ci, 1, snapc); } else { } __mark_inode_dirty(mapping->host, 4); tmp___13 = PageDirty((struct page const *)page); tmp___14 = ldv__builtin_expect(tmp___13 == 0, 0L); if (tmp___14 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (209), "i" (12UL)); ldv_28803: ; goto ldv_28803; } else { } return (1); } } static void ceph_invalidatepage(struct page *page , unsigned long offset ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_snap_context *snapc ; struct ceph_snap_context *tmp ; int tmp___0 ; long tmp___1 ; int tmp___2 ; long tmp___3 ; long tmp___4 ; int tmp___5 ; struct _ddebug descriptor ; char const *tmp___6 ; long tmp___7 ; struct _ddebug descriptor___0 ; char const *tmp___8 ; long tmp___9 ; { tmp = page_snap_context(page); snapc = tmp; tmp___0 = PageLocked((struct page const *)page); tmp___1 = ldv__builtin_expect(tmp___0 == 0, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (224), "i" (12UL)); ldv_28811: ; goto ldv_28811; } else { } tmp___2 = PagePrivate((struct page const *)page); tmp___3 = ldv__builtin_expect(tmp___2 == 0, 0L); if (tmp___3 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (225), "i" (12UL)); ldv_28812: ; goto ldv_28812; } else { } tmp___4 = ldv__builtin_expect((unsigned long )page->mapping == (unsigned long )((struct address_space *)0), 0L); if (tmp___4 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (226), "i" (12UL)); ldv_28813: ; goto ldv_28813; } else { } inode = (page->mapping)->host; tmp___5 = PageDirty((struct page const *)page); if (tmp___5 == 0) { printk("\vceph: %p invalidatepage %p page not dirty\n", inode, page); } else { } if (offset == 0UL) { ClearPageChecked(page); } else { } ci = ceph_inode(inode); if (offset == 0UL) { descriptor.modname = "ceph"; descriptor.function = "ceph_invalidatepage"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : %p invalidatepage %p idx %lu full dirty page %lu\n"; descriptor.lineno = 244U; descriptor.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : %p invalidatepage %p idx %lu full dirty page %lu\n", 3, (char *)" ", tmp___6, 244, inode, page, page->ldv_15493.ldv_15477.index, offset); } else { } ceph_put_wrbuffer_cap_refs(ci, 1, snapc); ceph_put_snap_context(snapc); page->ldv_15509.private = 0UL; ClearPagePrivate(page); } else { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_invalidatepage"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : %p invalidatepage %p idx %lu partial dirty page\n"; descriptor___0.lineno = 251U; descriptor___0.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : %p invalidatepage %p idx %lu partial dirty page\n", 3, (char *)" ", tmp___8, 251, inode, page, page->ldv_15493.ldv_15477.index); } else { } } return; } } static int ceph_releasepage(struct page *page , gfp_t g ) { struct inode *inode ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; int __ret_warn_on ; int tmp___1 ; long tmp___2 ; int __ret_warn_on___0 ; int tmp___3 ; long tmp___4 ; { inode = (unsigned long )page->mapping != (unsigned long )((struct address_space *)0) ? (page->mapping)->host : 0; descriptor.modname = "ceph"; descriptor.function = "ceph_releasepage"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : %p releasepage %p idx %lu\n"; descriptor.lineno = 259U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : %p releasepage %p idx %lu\n", 3, (char *)" ", tmp, 259, inode, page, page->ldv_15493.ldv_15477.index); } else { } tmp___1 = PageDirty((struct page const *)page); __ret_warn_on = tmp___1 != 0; tmp___2 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp___3 = PagePrivate((struct page const *)page); __ret_warn_on___0 = tmp___3 != 0; tmp___4 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 261); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); return (0); } } static int readpage_nounlock(struct file *filp , struct page *page ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_osd_client *osdc ; struct ceph_fs_client *tmp___0 ; int err ; u64 len ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; loff_t tmp___3 ; struct ceph_vino tmp___4 ; { inode = (filp->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_inode_to_client(inode); osdc = & (tmp___0->client)->osdc; err = 0; len = 4096ULL; descriptor.modname = "ceph"; descriptor.function = "readpage_nounlock"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : readpage inode %p file %p page %p index %lu\n"; descriptor.lineno = 278U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : readpage inode %p file %p page %p index %lu\n", 3, (char *)" ", tmp___1, 278, inode, filp, page, page->ldv_15493.ldv_15477.index); } else { } tmp___3 = page_offset(page); tmp___4 = ceph_vino(inode); err = ceph_osdc_readpages(osdc, tmp___4, & ci->i_layout, (unsigned long long )tmp___3, & len, ci->i_truncate_seq, ci->i_truncate_size, & page, 1, 0); if (err == -2) { err = 0; } else { } if (err < 0) { SetPageError(page); goto out; } else if ((unsigned int )err <= 4095U) { zero_user_segment(page, (unsigned int )err, 4096U); } else { } SetPageUptodate(page); out: ; return (0 < err ? 0 : err); } } static int ceph_readpage(struct file *filp , struct page *page ) { int r ; int tmp ; { tmp = readpage_nounlock(filp, page); r = tmp; unlock_page(page); return (r); } } static void finish_read(struct ceph_osd_request *req , struct ceph_msg *msg ) { struct inode *inode ; struct ceph_osd_reply_head *replyhead ; int rc ; int bytes ; int i ; int __ret_warn_on ; long tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct page *page ; int s ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; { inode = req->r_inode; replyhead = (struct ceph_osd_reply_head *)msg->front.iov_base; __ret_warn_on = replyhead->num_ops == 0U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 317); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); rc = (int )replyhead->result; bytes = (int )msg->hdr.data_len; descriptor.modname = "ceph"; descriptor.function = "finish_read"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : finish_read %p req %p rc %d bytes %d\n"; descriptor.lineno = 321U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : finish_read %p req %p rc %d bytes %d\n", 3, (char *)" ", tmp___0, 321, inode, req, rc, bytes); } else { } i = 0; goto ldv_28862; ldv_28861: page = *(req->r_pages + (unsigned long )i); if (bytes <= 4095) { s = 0 > bytes ? 0 : bytes; zero_user_segment(page, (unsigned int )s, 4096U); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "finish_read"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : finish_read %p uptodate %p idx %lu\n"; descriptor___0.lineno = 333U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : finish_read %p uptodate %p idx %lu\n", 3, (char *)" ", tmp___2, 333, inode, page, page->ldv_15493.ldv_15477.index); } else { } SetPageUptodate(page); unlock_page(page); put_page(page); i = i + 1; bytes = (int )((unsigned int )bytes - 4096U); ldv_28862: ; if ((unsigned int )i < req->r_num_pages) { goto ldv_28861; } else { } kfree((void const *)req->r_pages); return; } } static void ceph_unlock_page_vector(struct page **pages , int num_pages ) { int i ; { i = 0; goto ldv_28870; ldv_28869: unlock_page(*(pages + (unsigned long )i)); i = i + 1; ldv_28870: ; if (i < num_pages) { goto ldv_28869; } else { } return; } } static int start_read(struct inode *inode , struct list_head *page_list , int max ) { struct ceph_osd_client *osdc ; struct ceph_fs_client *tmp ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___0 ; struct page *page ; struct list_head const *__mptr ; struct ceph_osd_request *req ; u64 off ; u64 len ; int i ; struct page **pages ; unsigned long next_index ; int nr_pages ; int ret ; loff_t tmp___1 ; struct list_head const *__mptr___0 ; struct list_head const *__mptr___1 ; struct _ddebug descriptor ; char const *tmp___2 ; long tmp___3 ; struct ceph_vino tmp___4 ; long tmp___5 ; long tmp___6 ; void *tmp___7 ; struct list_head const *__mptr___2 ; int tmp___8 ; long tmp___9 ; struct _ddebug descriptor___0 ; char const *tmp___10 ; long tmp___11 ; struct _ddebug descriptor___1 ; char const *tmp___12 ; long tmp___13 ; int tmp___14 ; struct _ddebug descriptor___2 ; char const *tmp___15 ; long tmp___16 ; { tmp = ceph_inode_to_client(inode); osdc = & (tmp->client)->osdc; tmp___0 = ceph_inode(inode); ci = tmp___0; __mptr = (struct list_head const *)page_list->prev; page = (struct page *)__mptr + 0xffffffffffffffe0UL; nr_pages = 0; tmp___1 = page_offset(page); off = (unsigned long long )tmp___1; next_index = page->ldv_15493.ldv_15477.index; __mptr___0 = (struct list_head const *)page_list->prev; page = (struct page *)__mptr___0 + 0xffffffffffffffe0UL; goto ldv_28896; ldv_28895: ; if (page->ldv_15493.ldv_15477.index != next_index) { goto ldv_28894; } else { } nr_pages = nr_pages + 1; next_index = next_index + 1UL; if (max != 0 && nr_pages == max) { goto ldv_28894; } else { } __mptr___1 = (struct list_head const *)page->ldv_15504.lru.prev; page = (struct page *)__mptr___1 + 0xffffffffffffffe0UL; ldv_28896: ; if ((unsigned long )(& page->ldv_15504.lru) != (unsigned long )page_list) { goto ldv_28895; } else { } ldv_28894: len = (u64 )(nr_pages << 12); descriptor.modname = "ceph"; descriptor.function = "start_read"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : start_read %p nr_pages %d is %lld~%lld\n"; descriptor.lineno = 383U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : start_read %p nr_pages %d is %lld~%lld\n", 3, (char *)" ", tmp___2, 383, inode, nr_pages, off, len); } else { } tmp___4 = ceph_vino(inode); req = ceph_osdc_new_request(osdc, & ci->i_layout, tmp___4, off, & len, 4609, 16, 0, 0, ci->i_truncate_seq, ci->i_truncate_size, 0, 0, 1, 0); tmp___6 = IS_ERR((void const *)req); if (tmp___6 != 0L) { tmp___5 = PTR_ERR((void const *)req); return ((int )tmp___5); } else { } nr_pages = (int )(len >> 12); tmp___7 = kmalloc((unsigned long )nr_pages * 8UL, 80U); pages = (struct page **)tmp___7; ret = -12; if ((unsigned long )pages == (unsigned long )((struct page **)0)) { goto out; } else { } i = 0; goto ldv_28907; ldv_28906: __mptr___2 = (struct list_head const *)page_list->prev; page = (struct page *)__mptr___2 + 0xffffffffffffffe0UL; tmp___8 = PageLocked((struct page const *)page); tmp___9 = ldv__builtin_expect(tmp___8 != 0, 0L); if (tmp___9 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (402), "i" (12UL)); ldv_28902: ; goto ldv_28902; } else { } list_del(& page->ldv_15504.lru); descriptor___0.modname = "ceph"; descriptor___0.function = "start_read"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : start_read %p adding %p idx %lu\n"; descriptor___0.lineno = 406U; descriptor___0.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : start_read %p adding %p idx %lu\n", 3, (char *)" ", tmp___10, 406, inode, page, page->ldv_15493.ldv_15477.index); } else { } tmp___14 = add_to_page_cache_lru(page, & inode->i_data, page->ldv_15493.ldv_15477.index, 80U); if (tmp___14 != 0) { put_page(page); descriptor___1.modname = "ceph"; descriptor___1.function = "start_read"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : start_read %p add_to_page_cache failed %p\n"; descriptor___1.lineno = 411U; descriptor___1.flags = 0U; tmp___13 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___13 != 0L) { tmp___12 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : start_read %p add_to_page_cache failed %p\n", 3, (char *)" ", tmp___12, 411, inode, page); } else { } nr_pages = i; goto out_pages; } else { } *(pages + (unsigned long )i) = page; i = i + 1; ldv_28907: ; if (i < nr_pages) { goto ldv_28906; } else { } req->r_pages = pages; req->r_num_pages = (unsigned int )nr_pages; req->r_callback = & finish_read; req->r_inode = inode; descriptor___2.modname = "ceph"; descriptor___2.function = "start_read"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : start_read %p starting %p %lld~%lld\n"; descriptor___2.lineno = 422U; descriptor___2.flags = 0U; tmp___16 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___16 != 0L) { tmp___15 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : start_read %p starting %p %lld~%lld\n", 3, (char *)" ", tmp___15, 422, inode, req, off, len); } else { } ret = ceph_osdc_start_request(osdc, req, 0); if (ret < 0) { goto out_pages; } else { } ceph_osdc_put_request(req); return (nr_pages); out_pages: ceph_unlock_page_vector(pages, nr_pages); ceph_release_page_vector(pages, nr_pages); out: ceph_osdc_put_request(req); return (ret); } } static int ceph_readpages(struct file *file , struct address_space *mapping , struct list_head *page_list , unsigned int nr_pages ) { struct inode *inode ; struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; int rc ; int max ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; long tmp___2 ; int tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; { inode = (file->f_path.dentry)->d_inode; tmp = ceph_inode_to_client(inode); fsc = tmp; rc = 0; max = 0; if ((unsigned int )(fsc->mount_options)->rsize > 4095U) { max = (int )(((unsigned long )(fsc->mount_options)->rsize + 4095UL) >> 12); } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_readpages"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : readpages %p file %p nr_pages %d max %d\n"; descriptor.lineno = 455U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : readpages %p file %p nr_pages %d max %d\n", 3, (char *)" ", tmp___0, 455, inode, file, nr_pages, max); } else { } goto ldv_28925; ldv_28924: rc = start_read(inode, page_list, max); if (rc < 0) { goto out; } else { } tmp___2 = ldv__builtin_expect(rc == 0, 0L); if (tmp___2 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (460), "i" (12UL)); ldv_28923: ; goto ldv_28923; } else { } ldv_28925: tmp___3 = list_empty((struct list_head const *)page_list); if (tmp___3 == 0) { goto ldv_28924; } else { } out: descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_readpages"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : readpages %p file %p ret %d\n"; descriptor___0.lineno = 463U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : readpages %p file %p ret %d\n", 3, (char *)" ", tmp___4, 463, inode, file, rc); } else { } return (rc); } } static struct ceph_snap_context *get_oldest_context(struct inode *inode , u64 *snap_size ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_snap_context *snapc ; struct ceph_cap_snap *capsnap ; struct list_head const *__mptr ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct list_head const *__mptr___0 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; { tmp = ceph_inode(inode); ci = tmp; snapc = 0; capsnap = 0; spin_lock(& ci->i_ceph_lock); __mptr = (struct list_head const *)ci->i_cap_snaps.next; capsnap = (struct ceph_cap_snap *)__mptr + 0xfffffffffffffff0UL; goto ldv_28943; ldv_28942: descriptor.modname = "ceph"; descriptor.function = "get_oldest_context"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : cap_snap %p snapc %p has %d dirty pages\n"; descriptor.lineno = 481U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : cap_snap %p snapc %p has %d dirty pages\n", 3, (char *)" ", tmp___0, 481, capsnap, capsnap->context, capsnap->dirty_pages); } else { } if (capsnap->dirty_pages != 0) { snapc = ceph_get_snap_context(capsnap->context); if ((unsigned long )snap_size != (unsigned long )((u64 *)0)) { *snap_size = capsnap->size; } else { } goto ldv_28941; } else { } __mptr___0 = (struct list_head const *)capsnap->ci_item.next; capsnap = (struct ceph_cap_snap *)__mptr___0 + 0xfffffffffffffff0UL; ldv_28943: ; if ((unsigned long )(& capsnap->ci_item) != (unsigned long )(& ci->i_cap_snaps)) { goto ldv_28942; } else { } ldv_28941: ; if ((unsigned long )snapc == (unsigned long )((struct ceph_snap_context *)0) && ci->i_wrbuffer_ref_head != 0) { snapc = ceph_get_snap_context(ci->i_head_snapc); descriptor___0.modname = "ceph"; descriptor___0.function = "get_oldest_context"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : head snapc %p has %d dirty pages\n"; descriptor___0.lineno = 492U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : head snapc %p has %d dirty pages\n", 3, (char *)" ", tmp___2, 492, snapc, ci->i_wrbuffer_ref_head); } else { } } else { } spin_unlock(& ci->i_ceph_lock); return (snapc); } } static int writepage_nounlock(struct page *page , struct writeback_control *wbc ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_fs_client *fsc ; struct ceph_osd_client *osdc ; loff_t page_off ; loff_t tmp ; int len ; loff_t i_size ; int err ; struct ceph_snap_context *snapc ; struct ceph_snap_context *oldest ; u64 snap_size ; long writeback_stat ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; struct _ddebug descriptor___1 ; char const *tmp___4 ; long tmp___5 ; struct _ddebug descriptor___2 ; char const *tmp___6 ; long tmp___7 ; int __ret_warn_on ; struct task_struct *tmp___8 ; long tmp___9 ; struct _ddebug descriptor___3 ; char const *tmp___10 ; long tmp___11 ; struct ceph_vino tmp___12 ; struct _ddebug descriptor___4 ; char const *tmp___13 ; long tmp___14 ; struct _ddebug descriptor___5 ; char const *tmp___15 ; long tmp___16 ; { tmp = page_offset(page); page_off = tmp; len = 4096; err = 0; snap_size = 0ULL; descriptor.modname = "ceph"; descriptor.function = "writepage_nounlock"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : writepage %p idx %lu\n"; descriptor.lineno = 518U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : writepage %p idx %lu\n", 3, (char *)" ", tmp___0, 518, page, page->ldv_15493.ldv_15477.index); } else { } if ((unsigned long )page->mapping == (unsigned long )((struct address_space *)0) || (unsigned long )(page->mapping)->host == (unsigned long )((struct inode *)0)) { descriptor___0.modname = "ceph"; descriptor___0.function = "writepage_nounlock"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : writepage %p - no mapping\n"; descriptor___0.lineno = 521U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : writepage %p - no mapping\n", 3, (char *)" ", tmp___2, 521, page); } else { } return (-14); } else { } inode = (page->mapping)->host; ci = ceph_inode(inode); fsc = ceph_inode_to_client(inode); osdc = & (fsc->client)->osdc; snapc = page_snap_context(page); if ((unsigned long )snapc == (unsigned long )((struct ceph_snap_context *)0)) { descriptor___1.modname = "ceph"; descriptor___1.function = "writepage_nounlock"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : writepage %p page %p not dirty?\n"; descriptor___1.lineno = 532U; descriptor___1.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : writepage %p page %p not dirty?\n", 3, (char *)" ", tmp___4, 532, inode, page); } else { } goto out; } else { } oldest = get_oldest_context(inode, & snap_size); if (snapc->seq > oldest->seq) { descriptor___2.modname = "ceph"; descriptor___2.function = "writepage_nounlock"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : writepage %p page %p snapc %p not writeable - noop\n"; descriptor___2.lineno = 538U; descriptor___2.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : writepage %p page %p snapc %p not writeable - noop\n", 3, (char *)" ", tmp___6, 538, inode, page, snapc); } else { } tmp___8 = get_current(); __ret_warn_on = (tmp___8->flags & 2048U) == 0U; tmp___9 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___9 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 540); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); ceph_put_snap_context(oldest); goto out; } else { } ceph_put_snap_context(oldest); if (snap_size != 0ULL) { i_size = (loff_t )snap_size; } else { i_size = i_size_read((struct inode const *)inode); } if ((loff_t )len + page_off > i_size) { len = (int )((unsigned int )i_size - (unsigned int )page_off); } else { } descriptor___3.modname = "ceph"; descriptor___3.function = "writepage_nounlock"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : writepage %p page %p index %lu on %llu~%u snapc %p\n"; descriptor___3.lineno = 555U; descriptor___3.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : writepage %p page %p index %lu on %llu~%u snapc %p\n", 3, (char *)" ", tmp___10, 555, inode, page, page->ldv_15493.ldv_15477.index, page_off, len, snapc); } else { } writeback_stat = atomic_long_inc_return(& fsc->writeback_count); if ((long )((fsc->mount_options)->congestion_kb >> 2) < writeback_stat) { set_bdi_congested(& fsc->backing_dev_info, 0); } else { } set_page_writeback(page); tmp___12 = ceph_vino(inode); err = ceph_osdc_writepages(osdc, tmp___12, & ci->i_layout, snapc, (u64 )page_off, (u64 )len, ci->i_truncate_seq, ci->i_truncate_size, & inode->i_mtime, & page, 1, 0, 0, 1); if (err < 0) { descriptor___4.modname = "ceph"; descriptor___4.function = "writepage_nounlock"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : writepage setting page/mapping error %d %p\n"; descriptor___4.lineno = 570U; descriptor___4.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : writepage setting page/mapping error %d %p\n", 3, (char *)" ", tmp___13, 570, err, page); } else { } SetPageError(page); mapping_set_error(& inode->i_data, err); if ((unsigned long )wbc != (unsigned long )((struct writeback_control *)0)) { wbc->pages_skipped = wbc->pages_skipped + 1L; } else { } } else { descriptor___5.modname = "ceph"; descriptor___5.function = "writepage_nounlock"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : writepage cleaned page %p\n"; descriptor___5.lineno = 576U; descriptor___5.flags = 0U; tmp___16 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___16 != 0L) { tmp___15 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : writepage cleaned page %p\n", 3, (char *)" ", tmp___15, 576, page); } else { } err = 0; } page->ldv_15509.private = 0UL; ClearPagePrivate(page); end_page_writeback(page); ceph_put_wrbuffer_cap_refs(ci, 1, snapc); ceph_put_snap_context(snapc); out: ; return (err); } } static int ceph_writepage(struct page *page , struct writeback_control *wbc ) { int err ; struct inode *inode ; long tmp ; { inode = (page->mapping)->host; tmp = ldv__builtin_expect((unsigned long )inode == (unsigned long )((struct inode *)0), 0L); if (tmp != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (592), "i" (12UL)); ldv_28978: ; goto ldv_28978; } else { } ihold(inode); err = writepage_nounlock(page, wbc); unlock_page(page); iput(inode); return (err); } } static void ceph_release_pages(struct page **pages , int num ) { struct pagevec pvec ; int i ; unsigned int tmp ; { pagevec_init(& pvec, 0); i = 0; goto ldv_28986; ldv_28985: tmp = pagevec_add(& pvec, *(pages + (unsigned long )i)); if (tmp == 0U) { pagevec_release(& pvec); } else { } i = i + 1; ldv_28986: ; if (i < num) { goto ldv_28985; } else { } pagevec_release(& pvec); return; } } static void writepages_finish(struct ceph_osd_request *req , struct ceph_msg *msg ) { struct inode *inode ; struct ceph_osd_reply_head *replyhead ; struct ceph_osd_op *op ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; unsigned int wrote ; struct page *page ; int i ; struct ceph_snap_context *snapc ; struct address_space *mapping ; __s32 rc ; u64 bytes ; struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp___0 ; long writeback_stat ; unsigned int issued ; int tmp___1 ; int __ret_warn_on ; long tmp___2 ; struct _ddebug descriptor ; char const *tmp___3 ; long tmp___4 ; long tmp___5 ; int __ret_warn_on___0 ; int tmp___6 ; long tmp___7 ; struct ceph_snap_context *tmp___8 ; struct _ddebug descriptor___0 ; char const *tmp___9 ; long tmp___10 ; struct _ddebug descriptor___1 ; char const *tmp___11 ; long tmp___12 ; struct ceph_fs_client *tmp___13 ; { inode = req->r_inode; tmp = ceph_inode(inode); ci = tmp; snapc = req->r_snapc; mapping = inode->i_mapping; rc = -5; bytes = 0ULL; tmp___0 = ceph_inode_to_client(inode); fsc = tmp___0; tmp___1 = ceph_caps_issued(ci); issued = (unsigned int )tmp___1; replyhead = (struct ceph_osd_reply_head *)msg->front.iov_base; __ret_warn_on = replyhead->num_ops == 0U; tmp___2 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 645); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); op = (struct ceph_osd_op *)replyhead + 1U; rc = (__s32 )replyhead->result; bytes = op->ldv_26044.extent.length; if (rc >= 0) { wrote = req->r_num_pages; } else { wrote = 0U; mapping_set_error(mapping, rc); } descriptor.modname = "ceph"; descriptor.function = "writepages_finish"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : writepages_finish %p rc %d bytes %llu wrote %d (pages)\n"; descriptor.lineno = 663U; descriptor.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : writepages_finish %p rc %d bytes %llu wrote %d (pages)\n", 3, (char *)" ", tmp___3, 663, inode, rc, bytes, wrote); } else { } i = 0; goto ldv_29015; ldv_29014: page = *(req->r_pages + (unsigned long )i); tmp___5 = ldv__builtin_expect((unsigned long )page == (unsigned long )((struct page *)0), 0L); if (tmp___5 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (668), "i" (12UL)); ldv_29010: ; goto ldv_29010; } else { } tmp___6 = PageUptodate(page); __ret_warn_on___0 = tmp___6 == 0; tmp___7 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___7 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 669); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); writeback_stat = atomic_long_dec_return(& fsc->writeback_count); if ((long )(((fsc->mount_options)->congestion_kb >> 2) - ((fsc->mount_options)->congestion_kb >> 4)) > writeback_stat) { clear_bdi_congested(& fsc->backing_dev_info, 0); } else { } tmp___8 = page_snap_context(page); ceph_put_snap_context(tmp___8); page->ldv_15509.private = 0UL; ClearPagePrivate(page); descriptor___0.modname = "ceph"; descriptor___0.function = "writepages_finish"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : unlocking %d %p\n"; descriptor___0.lineno = 681U; descriptor___0.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : unlocking %d %p\n", 3, (char *)" ", tmp___9, 681, i, page); } else { } end_page_writeback(page); if ((issued & 33792U) == 0U) { generic_error_remove_page(inode->i_mapping, page); } else { } unlock_page(page); i = i + 1; ldv_29015: ; if ((unsigned int )i < req->r_num_pages) { goto ldv_29014; } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "writepages_finish"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : %p wrote+cleaned %d pages\n"; descriptor___1.lineno = 695U; descriptor___1.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : %p wrote+cleaned %d pages\n", 3, (char *)" ", tmp___11, 695, inode, wrote); } else { } ceph_put_wrbuffer_cap_refs(ci, (int )req->r_num_pages, snapc); ceph_release_pages(req->r_pages, (int )req->r_num_pages); if (req->r_pages_from_pool != 0) { tmp___13 = ceph_sb_to_client(inode->i_sb); mempool_free((void *)req->r_pages, tmp___13->wb_pagevec_pool); } else { kfree((void const *)req->r_pages); } ceph_osdc_put_request(req); return; } } static void alloc_page_vec(struct ceph_fs_client *fsc , struct ceph_osd_request *req ) { void *tmp ; void *tmp___0 ; int __ret_warn_on ; long tmp___1 ; { tmp = kmalloc((unsigned long )req->r_num_pages * 8UL, 80U); req->r_pages = (struct page **)tmp; if ((unsigned long )req->r_pages == (unsigned long )((struct page **)0)) { tmp___0 = mempool_alloc(fsc->wb_pagevec_pool, 80U); req->r_pages = (struct page **)tmp___0; req->r_pages_from_pool = 1; __ret_warn_on = (unsigned long )req->r_pages == (unsigned long )((struct page **)0); tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 720); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } else { } return; } } static int ceph_writepages_start(struct address_space *mapping , struct writeback_control *wbc ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_fs_client *fsc ; unsigned long index ; unsigned long start ; unsigned long end ; int range_whole ; int should_loop ; unsigned long max_pages ; unsigned long max_pages_ever ; struct ceph_snap_context *snapc ; struct ceph_snap_context *last_snapc ; struct ceph_snap_context *pgsnapc ; struct pagevec pvec ; int done ; int rc ; unsigned int wsize ; struct ceph_osd_request *req ; int do_sync ; u64 snap_size ; int tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___2 ; char const *tmp___7 ; long tmp___8 ; struct _ddebug descriptor___3 ; char const *tmp___9 ; long tmp___10 ; struct _ddebug descriptor___4 ; char const *tmp___11 ; long tmp___12 ; unsigned int i ; int first ; unsigned long next ; int pvec_pages ; int locked_pages ; struct page *page ; int want ; u64 offset ; u64 len ; struct ceph_osd_request_head *reqhead ; struct ceph_osd_op *op ; long writeback_stat ; unsigned long _min1 ; unsigned long _min2 ; unsigned long _min1___0 ; unsigned long _min2___0 ; unsigned int tmp___13 ; struct _ddebug descriptor___5 ; char const *tmp___14 ; long tmp___15 ; struct _ddebug descriptor___6 ; char const *tmp___16 ; long tmp___17 ; int tmp___18 ; struct _ddebug descriptor___7 ; char const *tmp___19 ; long tmp___20 ; int tmp___21 ; long tmp___22 ; long tmp___23 ; struct _ddebug descriptor___8 ; char const *tmp___24 ; long tmp___25 ; struct _ddebug descriptor___9 ; char const *tmp___26 ; long tmp___27 ; struct _ddebug descriptor___10 ; char const *tmp___28 ; long tmp___29 ; struct _ddebug descriptor___11 ; loff_t tmp___30 ; unsigned long long tmp___31 ; char const *tmp___32 ; long tmp___33 ; loff_t tmp___34 ; loff_t tmp___35 ; loff_t tmp___36 ; struct _ddebug descriptor___12 ; char const *tmp___37 ; long tmp___38 ; int tmp___39 ; struct _ddebug descriptor___13 ; char const *tmp___40 ; long tmp___41 ; struct _ddebug descriptor___14 ; char const *tmp___42 ; long tmp___43 ; int tmp___44 ; loff_t tmp___45 ; struct ceph_vino tmp___46 ; long tmp___47 ; long tmp___48 ; struct _ddebug descriptor___15 ; char const *tmp___49 ; long tmp___50 ; int j ; long tmp___51 ; long tmp___52 ; struct _ddebug descriptor___16 ; char const *tmp___53 ; long tmp___54 ; struct _ddebug descriptor___17 ; char const *tmp___55 ; long tmp___56 ; unsigned long long _min1___1 ; loff_t tmp___57 ; unsigned long long tmp___58 ; unsigned long long _min2___1 ; struct _ddebug descriptor___18 ; char const *tmp___59 ; long tmp___60 ; long tmp___61 ; struct _ddebug descriptor___19 ; char const *tmp___62 ; long tmp___63 ; struct _ddebug descriptor___20 ; char const *tmp___64 ; long tmp___65 ; struct _ddebug descriptor___21 ; char const *tmp___66 ; long tmp___67 ; { inode = mapping->host; tmp = ceph_inode(inode); ci = tmp; range_whole = 0; should_loop = 1; max_pages = 0UL; max_pages_ever = 0UL; snapc = 0; last_snapc = 0; done = 0; rc = 0; wsize = (unsigned int )(1 << (int )inode->i_blkbits); req = 0; snap_size = 0ULL; do_sync = (unsigned int )wbc->sync_mode == 1U; tmp___0 = ceph_caps_revoking(ci, 8192); if (tmp___0 != 0) { do_sync = 1; } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_writepages_start"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : writepages_start %p dosync=%d (mode=%s)\n"; descriptor.lineno = 757U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : writepages_start %p dosync=%d (mode=%s)\n", 3, (char *)" ", tmp___1, 757, inode, do_sync, (unsigned int )wbc->sync_mode != 0U ? ((unsigned int )wbc->sync_mode == 1U ? (char *)"ALL" : (char *)"HOLD") : (char *)"NONE"); } else { } fsc = ceph_inode_to_client(inode); if (fsc->mount_state == 4UL) { printk("\fceph: writepage_start %p on forced umount\n", inode); return (-5); } else { } if ((fsc->mount_options)->wsize != 0 && (unsigned int )(fsc->mount_options)->wsize < wsize) { wsize = (unsigned int )(fsc->mount_options)->wsize; } else { } if (wsize <= 4095U) { wsize = 4096U; } else { } max_pages_ever = (unsigned long )(wsize >> 12); pagevec_init(& pvec, 0); if ((unsigned int )*((unsigned char *)wbc + 36UL) != 0U) { start = mapping->writeback_index; end = 0xffffffffffffffffUL; descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_writepages_start"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : cyclic, start at %lu\n"; descriptor___0.lineno = 776U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : cyclic, start at %lu\n", 3, (char *)" ", tmp___3, 776, start); } else { } } else { start = (unsigned long )(wbc->range_start >> 12); end = (unsigned long )(wbc->range_end >> 12); if (wbc->range_start == 0LL && wbc->range_end == 9223372036854775807LL) { range_whole = 1; } else { } should_loop = 0; descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_writepages_start"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : not cyclic, %lu to %lu\n"; descriptor___1.lineno = 783U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : not cyclic, %lu to %lu\n", 3, (char *)" ", tmp___5, 783, start, end); } else { } } index = start; retry: ceph_put_snap_context(snapc); snapc = get_oldest_context(inode, & snap_size); if ((unsigned long )snapc == (unsigned long )((struct ceph_snap_context *)0)) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_writepages_start"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : no snap context with dirty data?\n"; descriptor___2.lineno = 794U; descriptor___2.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : no snap context with dirty data?\n", 3, (char *)" ", tmp___7, 794); } else { } goto out; } else { } descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_writepages_start"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : oldest snapc is %p seq %lld (%d snaps)\n"; descriptor___3.lineno = 798U; descriptor___3.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : oldest snapc is %p seq %lld (%d snaps)\n", 3, (char *)" ", tmp___9, 798, snapc, snapc->seq, snapc->num_snaps); } else { } if ((unsigned long )last_snapc != (unsigned long )((struct ceph_snap_context *)0) && (unsigned long )snapc != (unsigned long )last_snapc) { descriptor___4.modname = "ceph"; descriptor___4.function = "ceph_writepages_start"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : snapc differs from last pass, restarting at %lu\n"; descriptor___4.lineno = 803U; descriptor___4.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : snapc differs from last pass, restarting at %lu\n", 3, (char *)" ", tmp___11, 803, index); } else { } index = start; } else { } last_snapc = snapc; goto ldv_29110; ldv_29109: next = 0UL; locked_pages = 0; max_pages = max_pages_ever; get_more_pages: first = -1; _min1 = end - index; _min1___0 = 14UL; _min2___0 = max_pages - (unsigned long )locked_pages; _min2 = (_min1___0 < _min2___0 ? _min1___0 : _min2___0) - 1UL; want = (int )((unsigned int )(_min1 < _min2 ? _min1 : _min2) + 1U); tmp___13 = pagevec_lookup_tag(& pvec, mapping, & index, 0, (unsigned int )want); pvec_pages = (int )tmp___13; descriptor___5.modname = "ceph"; descriptor___5.function = "ceph_writepages_start"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : pagevec_lookup_tag got %d\n"; descriptor___5.lineno = 833U; descriptor___5.flags = 0U; tmp___15 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___15 != 0L) { tmp___14 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : pagevec_lookup_tag got %d\n", 3, (char *)" ", tmp___14, 833, pvec_pages); } else { } if (pvec_pages == 0 && locked_pages == 0) { goto ldv_29080; } else { } i = 0U; goto ldv_29094; ldv_29093: page = pvec.pages[i]; descriptor___6.modname = "ceph"; descriptor___6.function = "ceph_writepages_start"; descriptor___6.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___6.format = "%.*s %12.12s:%-4d : ? %p idx %lu\n"; descriptor___6.lineno = 838U; descriptor___6.flags = 0U; tmp___17 = ldv__builtin_expect((long )descriptor___6.flags & 1L, 0L); if (tmp___17 != 0L) { tmp___16 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___6, "ceph: %.*s %12.12s:%-4d : ? %p idx %lu\n", 3, (char *)" ", tmp___16, 838, page, page->ldv_15493.ldv_15477.index); } else { } if (locked_pages == 0) { lock_page(page); } else { tmp___18 = trylock_page(page); if (tmp___18 == 0) { goto ldv_29082; } else { } } tmp___21 = PageDirty((struct page const *)page); tmp___22 = ldv__builtin_expect(tmp___21 == 0, 0L); if (tmp___22 != 0L) { goto _L; } else { tmp___23 = ldv__builtin_expect((unsigned long )page->mapping != (unsigned long )mapping, 0L); if (tmp___23 != 0L) { _L: /* CIL Label */ descriptor___7.modname = "ceph"; descriptor___7.function = "ceph_writepages_start"; descriptor___7.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___7.format = "%.*s %12.12s:%-4d : !dirty or !mapping %p\n"; descriptor___7.lineno = 847U; descriptor___7.flags = 0U; tmp___20 = ldv__builtin_expect((long )descriptor___7.flags & 1L, 0L); if (tmp___20 != 0L) { tmp___19 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___7, "ceph: %.*s %12.12s:%-4d : !dirty or !mapping %p\n", 3, (char *)" ", tmp___19, 847, page); } else { } unlock_page(page); goto ldv_29082; } else { } } if ((unsigned int )*((unsigned char *)wbc + 36UL) == 0U && page->ldv_15493.ldv_15477.index > end) { descriptor___8.modname = "ceph"; descriptor___8.function = "ceph_writepages_start"; descriptor___8.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___8.format = "%.*s %12.12s:%-4d : end of range %p\n"; descriptor___8.lineno = 852U; descriptor___8.flags = 0U; tmp___25 = ldv__builtin_expect((long )descriptor___8.flags & 1L, 0L); if (tmp___25 != 0L) { tmp___24 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___8, "ceph: %.*s %12.12s:%-4d : end of range %p\n", 3, (char *)" ", tmp___24, 852, page); } else { } done = 1; unlock_page(page); goto ldv_29082; } else { } if (next != 0UL && page->ldv_15493.ldv_15477.index != next) { descriptor___9.modname = "ceph"; descriptor___9.function = "ceph_writepages_start"; descriptor___9.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___9.format = "%.*s %12.12s:%-4d : not consecutive %p\n"; descriptor___9.lineno = 858U; descriptor___9.flags = 0U; tmp___27 = ldv__builtin_expect((long )descriptor___9.flags & 1L, 0L); if (tmp___27 != 0L) { tmp___26 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___9, "ceph: %.*s %12.12s:%-4d : not consecutive %p\n", 3, (char *)" ", tmp___26, 858, page); } else { } unlock_page(page); goto ldv_29082; } else { } if ((unsigned int )wbc->sync_mode != 0U) { descriptor___10.modname = "ceph"; descriptor___10.function = "ceph_writepages_start"; descriptor___10.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___10.format = "%.*s %12.12s:%-4d : waiting on writeback %p\n"; descriptor___10.lineno = 863U; descriptor___10.flags = 0U; tmp___29 = ldv__builtin_expect((long )descriptor___10.flags & 1L, 0L); if (tmp___29 != 0L) { tmp___28 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___10, "ceph: %.*s %12.12s:%-4d : waiting on writeback %p\n", 3, (char *)" ", tmp___28, 863, page); } else { } wait_on_page_writeback(page); } else { } if (snap_size != 0ULL) { tmp___34 = page_offset(page); if ((unsigned long long )tmp___34 > snap_size) { goto _L___0; } else { goto _L___1; } } else _L___1: /* CIL Label */ if (snap_size == 0ULL) { tmp___35 = page_offset(page); tmp___36 = i_size_read((struct inode const *)inode); if (tmp___35 > tmp___36) { _L___0: /* CIL Label */ descriptor___11.modname = "ceph"; descriptor___11.function = "ceph_writepages_start"; descriptor___11.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___11.format = "%.*s %12.12s:%-4d : %p page eof %llu\n"; descriptor___11.lineno = 870U; descriptor___11.flags = 0U; tmp___33 = ldv__builtin_expect((long )descriptor___11.flags & 1L, 0L); if (tmp___33 != 0L) { if (snap_size == 0ULL) { tmp___30 = i_size_read((struct inode const *)inode); tmp___31 = (unsigned long long )tmp___30; } else { tmp___31 = snap_size; } tmp___32 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___11, "ceph: %.*s %12.12s:%-4d : %p page eof %llu\n", 3, (char *)" ", tmp___32, 870, page, tmp___31); } else { } done = 1; unlock_page(page); goto ldv_29082; } else { } } else { } tmp___39 = PageWriteback((struct page const *)page); if (tmp___39 != 0) { descriptor___12.modname = "ceph"; descriptor___12.function = "ceph_writepages_start"; descriptor___12.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___12.format = "%.*s %12.12s:%-4d : %p under writeback\n"; descriptor___12.lineno = 876U; descriptor___12.flags = 0U; tmp___38 = ldv__builtin_expect((long )descriptor___12.flags & 1L, 0L); if (tmp___38 != 0L) { tmp___37 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___12, "ceph: %.*s %12.12s:%-4d : %p under writeback\n", 3, (char *)" ", tmp___37, 876, page); } else { } unlock_page(page); goto ldv_29082; } else { } pgsnapc = page_snap_context(page); if (pgsnapc->seq > snapc->seq) { descriptor___13.modname = "ceph"; descriptor___13.function = "ceph_writepages_start"; descriptor___13.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___13.format = "%.*s %12.12s:%-4d : page snapc %p %lld > oldest %p %lld\n"; descriptor___13.lineno = 885U; descriptor___13.flags = 0U; tmp___41 = ldv__builtin_expect((long )descriptor___13.flags & 1L, 0L); if (tmp___41 != 0L) { tmp___40 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___13, "ceph: %.*s %12.12s:%-4d : page snapc %p %lld > oldest %p %lld\n", 3, (char *)" ", tmp___40, 885, pgsnapc, pgsnapc->seq, snapc, snapc->seq); } else { } unlock_page(page); if (locked_pages == 0) { goto ldv_29090; } else { } goto ldv_29082; } else { } tmp___44 = clear_page_dirty_for_io(page); if (tmp___44 == 0) { descriptor___14.modname = "ceph"; descriptor___14.function = "ceph_writepages_start"; descriptor___14.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___14.format = "%.*s %12.12s:%-4d : %p !clear_page_dirty_for_io\n"; descriptor___14.lineno = 893U; descriptor___14.flags = 0U; tmp___43 = ldv__builtin_expect((long )descriptor___14.flags & 1L, 0L); if (tmp___43 != 0L) { tmp___42 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___14, "ceph: %.*s %12.12s:%-4d : %p !clear_page_dirty_for_io\n", 3, (char *)" ", tmp___42, 893, page); } else { } unlock_page(page); goto ldv_29082; } else { } if (locked_pages == 0) { tmp___45 = page_offset(page); offset = (unsigned long long )tmp___45; len = (u64 )wsize; tmp___46 = ceph_vino(inode); req = ceph_osdc_new_request(& (fsc->client)->osdc, & ci->i_layout, tmp___46, offset, & len, 8705, 36, snapc, do_sync, ci->i_truncate_seq, ci->i_truncate_size, & inode->i_mtime, 1, 1, 0); tmp___48 = IS_ERR((void const *)req); if (tmp___48 != 0L) { tmp___47 = PTR_ERR((void const *)req); rc = (int )tmp___47; unlock_page(page); goto ldv_29082; } else { } max_pages = (unsigned long )req->r_num_pages; alloc_page_vec(fsc, req); req->r_callback = & writepages_finish; req->r_inode = inode; } else { } if (first < 0) { first = (int )i; } else { } descriptor___15.modname = "ceph"; descriptor___15.function = "ceph_writepages_start"; descriptor___15.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___15.format = "%.*s %12.12s:%-4d : %p will write page %p idx %lu\n"; descriptor___15.lineno = 932U; descriptor___15.flags = 0U; tmp___50 = ldv__builtin_expect((long )descriptor___15.flags & 1L, 0L); if (tmp___50 != 0L) { tmp___49 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___15, "ceph: %.*s %12.12s:%-4d : %p will write page %p idx %lu\n", 3, (char *)" ", tmp___49, 932, inode, page, page->ldv_15493.ldv_15477.index); } else { } writeback_stat = atomic_long_inc_return(& fsc->writeback_count); if ((long )((fsc->mount_options)->congestion_kb >> 2) < writeback_stat) { set_bdi_congested(& fsc->backing_dev_info, 0); } else { } set_page_writeback(page); *(req->r_pages + (unsigned long )locked_pages) = page; locked_pages = locked_pages + 1; next = page->ldv_15493.ldv_15477.index + 1UL; ldv_29090: i = i + 1U; ldv_29094: ; if ((unsigned int )pvec_pages > i && (unsigned long )locked_pages < max_pages) { goto ldv_29093; } else { } ldv_29082: ; if (locked_pages == 0) { goto release_pvec_pages; } else { } if (i != 0U) { tmp___51 = ldv__builtin_expect(locked_pages == 0, 0L); if (tmp___51 != 0L) { goto _L___2; } else { tmp___52 = ldv__builtin_expect(first < 0, 0L); if (tmp___52 != 0L) { _L___2: /* CIL Label */ __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (953), "i" (12UL)); ldv_29097: ; goto ldv_29097; } else { } } if ((pvec_pages != 0 && (unsigned int )pvec_pages == i) && (unsigned long )locked_pages < max_pages) { descriptor___16.modname = "ceph"; descriptor___16.function = "ceph_writepages_start"; descriptor___16.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___16.format = "%.*s %12.12s:%-4d : reached end pvec, trying for more\n"; descriptor___16.lineno = 957U; descriptor___16.flags = 0U; tmp___54 = ldv__builtin_expect((long )descriptor___16.flags & 1L, 0L); if (tmp___54 != 0L) { tmp___53 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___16, "ceph: %.*s %12.12s:%-4d : reached end pvec, trying for more\n", 3, (char *)" ", tmp___53, 957); } else { } pagevec_reinit(& pvec); goto get_more_pages; } else { } j = (int )i; goto ldv_29101; ldv_29100: descriptor___17.modname = "ceph"; descriptor___17.function = "ceph_writepages_start"; descriptor___17.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___17.format = "%.*s %12.12s:%-4d : pvec leftover page %p\n"; descriptor___17.lineno = 966U; descriptor___17.flags = 0U; tmp___56 = ldv__builtin_expect((long )descriptor___17.flags & 1L, 0L); if (tmp___56 != 0L) { tmp___55 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___17, "ceph: %.*s %12.12s:%-4d : pvec leftover page %p\n", 3, (char *)" ", tmp___55, 966, pvec.pages[j]); } else { } pvec.pages[((unsigned int )j - i) + (unsigned int )first] = pvec.pages[j]; j = j + 1; ldv_29101: ; if (j < pvec_pages) { goto ldv_29100; } else { } pvec.nr = pvec.nr - (unsigned long )(i - (unsigned int )first); } else { } offset = (u64 )((*(req->r_pages))->ldv_15493.ldv_15477.index << 12); if (snap_size == 0ULL) { tmp___57 = i_size_read((struct inode const *)inode); tmp___58 = (unsigned long long )tmp___57; } else { tmp___58 = snap_size; } _min1___1 = tmp___58 - offset; _min2___1 = (unsigned long long )locked_pages << 12; len = _min1___1 < _min2___1 ? _min1___1 : _min2___1; descriptor___18.modname = "ceph"; descriptor___18.function = "ceph_writepages_start"; descriptor___18.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___18.format = "%.*s %12.12s:%-4d : writepages got %d pages at %llu~%llu\n"; descriptor___18.lineno = 977U; descriptor___18.flags = 0U; tmp___60 = ldv__builtin_expect((long )descriptor___18.flags & 1L, 0L); if (tmp___60 != 0L) { tmp___59 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___18, "ceph: %.*s %12.12s:%-4d : writepages got %d pages at %llu~%llu\n", 3, (char *)" ", tmp___59, 977, locked_pages, offset, len); } else { } req->r_num_pages = (unsigned int )locked_pages; reqhead = (struct ceph_osd_request_head *)(req->r_request)->front.iov_base; op = (struct ceph_osd_op *)reqhead + 1U; op->ldv_26044.extent.length = len; op->payload_len = (unsigned int )len; (req->r_request)->hdr.data_len = (unsigned int )len; rc = ceph_osdc_start_request(& (fsc->client)->osdc, req, 1); tmp___61 = ldv__builtin_expect(rc != 0, 0L); if (tmp___61 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (988), "i" (12UL)); ldv_29107: ; goto ldv_29107; } else { } req = 0; index = next; wbc->nr_to_write = wbc->nr_to_write - (long )locked_pages; if (wbc->nr_to_write <= 0L) { done = 1; } else { } release_pvec_pages: descriptor___19.modname = "ceph"; descriptor___19.function = "ceph_writepages_start"; descriptor___19.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___19.format = "%.*s %12.12s:%-4d : pagevec_release on %d pages (%p)\n"; descriptor___19.lineno = 999U; descriptor___19.flags = 0U; tmp___63 = ldv__builtin_expect((long )descriptor___19.flags & 1L, 0L); if (tmp___63 != 0L) { tmp___62 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___19, "ceph: %.*s %12.12s:%-4d : pagevec_release on %d pages (%p)\n", 3, (char *)" ", tmp___62, 999, (int )pvec.nr, pvec.nr != 0UL ? pvec.pages[0] : 0); } else { } pagevec_release(& pvec); if (locked_pages != 0 && done == 0) { goto retry; } else { } ldv_29110: ; if (done == 0 && index <= end) { goto ldv_29109; } else { } ldv_29080: ; if (should_loop != 0 && done == 0) { descriptor___20.modname = "ceph"; descriptor___20.function = "ceph_writepages_start"; descriptor___20.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___20.format = "%.*s %12.12s:%-4d : writepages looping back to beginning of file\n"; descriptor___20.lineno = 1008U; descriptor___20.flags = 0U; tmp___65 = ldv__builtin_expect((long )descriptor___20.flags & 1L, 0L); if (tmp___65 != 0L) { tmp___64 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___20, "ceph: %.*s %12.12s:%-4d : writepages looping back to beginning of file\n", 3, (char *)" ", tmp___64, 1008); } else { } should_loop = 0; index = 0UL; goto retry; } else { } if ((unsigned int )*((unsigned char *)wbc + 36UL) != 0U || (range_whole != 0 && wbc->nr_to_write > 0L)) { mapping->writeback_index = index; } else { } out: ; if ((unsigned long )req != (unsigned long )((struct ceph_osd_request *)0)) { ceph_osdc_put_request(req); } else { } ceph_put_snap_context(snapc); descriptor___21.modname = "ceph"; descriptor___21.function = "ceph_writepages_start"; descriptor___21.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___21.format = "%.*s %12.12s:%-4d : writepages done, rc = %d\n"; descriptor___21.lineno = 1021U; descriptor___21.flags = 0U; tmp___67 = ldv__builtin_expect((long )descriptor___21.flags & 1L, 0L); if (tmp___67 != 0L) { tmp___66 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___21, "ceph: %.*s %12.12s:%-4d : writepages done, rc = %d\n", 3, (char *)" ", tmp___66, 1021, rc); } else { } return (rc); } } static int context_is_writeable_or_written(struct inode *inode , struct ceph_snap_context *snapc ) { struct ceph_snap_context *oldest ; struct ceph_snap_context *tmp ; int ret ; { tmp = get_oldest_context(inode, 0); oldest = tmp; ret = (unsigned long )oldest == (unsigned long )((struct ceph_snap_context *)0) || snapc->seq <= oldest->seq; ceph_put_snap_context(oldest); return (ret); } } static int ceph_update_writeable_page(struct file *file , loff_t pos , unsigned int len , struct page *page ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp___0 ; loff_t page_off ; int pos_in_page ; int end_in_page ; loff_t i_size ; int r ; struct ceph_snap_context *snapc ; struct ceph_snap_context *oldest ; long tmp___1 ; long tmp___2 ; struct _ddebug descriptor ; char const *tmp___3 ; long tmp___4 ; int __ret ; wait_queue_t __wait ; struct task_struct *tmp___5 ; int tmp___6 ; struct task_struct *tmp___7 ; int tmp___8 ; int tmp___9 ; struct _ddebug descriptor___0 ; char const *tmp___10 ; long tmp___11 ; int tmp___12 ; struct _ddebug descriptor___1 ; char const *tmp___13 ; long tmp___14 ; int tmp___15 ; struct _ddebug descriptor___2 ; char const *tmp___16 ; long tmp___17 ; { inode = (file->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_inode_to_client(inode); mdsc = tmp___0->mdsc; page_off = pos & -4096LL; pos_in_page = (int )pos & 4095; end_in_page = (int )((unsigned int )pos_in_page + len); retry_locked: wait_on_page_writeback(page); tmp___1 = ldv__builtin_expect((unsigned long )ci->i_snap_realm == (unsigned long )((struct ceph_snap_realm *)0), 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (1067), "i" (12UL)); ldv_29136: ; goto ldv_29136; } else { } down_read(& mdsc->snap_rwsem); tmp___2 = ldv__builtin_expect((unsigned long )(ci->i_snap_realm)->cached_context == (unsigned long )((struct ceph_snap_context *)0), 0L); if (tmp___2 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"), "i" (1069), "i" (12UL)); ldv_29137: ; goto ldv_29137; } else { } snapc = page_snap_context(page); if ((unsigned long )snapc != (unsigned long )((struct ceph_snap_context *)0) && (unsigned long )ci->i_head_snapc != (unsigned long )snapc) { oldest = get_oldest_context(inode, 0); up_read(& mdsc->snap_rwsem); if (snapc->seq > oldest->seq) { ceph_put_snap_context(oldest); descriptor.modname = "ceph"; descriptor.function = "ceph_update_writeable_page"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : page %p snapc %p not current or oldest\n"; descriptor.lineno = 1082U; descriptor.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : page %p snapc %p not current or oldest\n", 3, (char *)" ", tmp___3, 1082, page, snapc); } else { } snapc = ceph_get_snap_context(snapc); unlock_page(page); ceph_queue_writeback(inode); __ret = 0; tmp___9 = context_is_writeable_or_written(inode, snapc); if (tmp___9 == 0) { tmp___5 = get_current(); __wait.flags = 0U; __wait.private = (void *)tmp___5; __wait.func = & autoremove_wake_function; __wait.task_list.next = & __wait.task_list; __wait.task_list.prev = & __wait.task_list; ldv_29144: prepare_to_wait(& ci->i_cap_wq, & __wait, 1); tmp___6 = context_is_writeable_or_written(inode, snapc); if (tmp___6 != 0) { goto ldv_29142; } else { } tmp___7 = get_current(); tmp___8 = signal_pending(tmp___7); if (tmp___8 == 0) { schedule(); goto ldv_29143; } else { } __ret = -512; goto ldv_29142; ldv_29143: ; goto ldv_29144; ldv_29142: finish_wait(& ci->i_cap_wq, & __wait); } else { } r = __ret; ceph_put_snap_context(snapc); if (r == -512) { return (r); } else { } return (-11); } else { } ceph_put_snap_context(oldest); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_update_writeable_page"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : page %p snapc %p not current, but oldest\n"; descriptor___0.lineno = 1101U; descriptor___0.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : page %p snapc %p not current, but oldest\n", 3, (char *)" ", tmp___10, 1101, page, snapc); } else { } tmp___12 = clear_page_dirty_for_io(page); if (tmp___12 == 0) { goto retry_locked; } else { } r = writepage_nounlock(page, 0); if (r < 0) { goto fail_nosnap; } else { } goto retry_locked; } else { } tmp___15 = PageUptodate(page); if (tmp___15 != 0) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_update_writeable_page"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : page %p already uptodate\n"; descriptor___1.lineno = 1111U; descriptor___1.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : page %p already uptodate\n", 3, (char *)" ", tmp___13, 1111, page); } else { } return (0); } else { } if (pos_in_page == 0 && len == 4096U) { return (0); } else { } i_size = inode->i_size; if ((loff_t )len + i_size > (inode->i_sb)->s_maxbytes) { r = -22; goto fail; } else { } if (page_off >= i_size || ((pos_in_page == 0 && (loff_t )len + pos >= i_size) && end_in_page - pos_in_page != 4096)) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_update_writeable_page"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : zeroing %p 0 - %d and %d - %d\n"; descriptor___2.lineno = 1132U; descriptor___2.flags = 0U; tmp___17 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___17 != 0L) { tmp___16 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : zeroing %p 0 - %d and %d - %d\n", 3, (char *)" ", tmp___16, 1132, page, pos_in_page, end_in_page, 4096); } else { } zero_user_segments(page, 0U, (unsigned int )pos_in_page, (unsigned int )end_in_page, 4096U); return (0); } else { } up_read(& mdsc->snap_rwsem); r = readpage_nounlock(file, page); if (r < 0) { goto fail_nosnap; } else { } goto retry_locked; fail: up_read(& mdsc->snap_rwsem); fail_nosnap: unlock_page(page); return (r); } } static int ceph_write_begin(struct file *file , struct address_space *mapping , loff_t pos , unsigned int len , unsigned int flags , struct page **pagep , void **fsdata ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_file_info *fi ; struct page *page ; unsigned long index ; int r ; int want ; int got ; struct _ddebug descriptor ; struct ceph_inode_info *tmp___0 ; struct ceph_inode_info *tmp___1 ; char const *tmp___2 ; long tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; struct ceph_inode_info *tmp___5 ; struct ceph_inode_info *tmp___6 ; char const *tmp___7 ; long tmp___8 ; struct _ddebug descriptor___1 ; char const *tmp___9 ; long tmp___10 ; { inode = (file->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; fi = (struct ceph_file_info *)file->private_data; index = (unsigned long )(pos >> 12); got = 0; if (((int )fi->fmode & 4) != 0) { want = 40960; } else { want = 8192; } descriptor.modname = "ceph"; descriptor.function = "ceph_write_begin"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : write_begin %p %llx.%llx %llu~%u getting caps. i_size %llu\n"; descriptor.lineno = 1174U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___0 = ceph_inode(inode); tmp___1 = ceph_inode(inode); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : write_begin %p %llx.%llx %llu~%u getting caps. i_size %llu\n", 3, (char *)" ", tmp___2, 1174, inode, tmp___1->i_vino.ino, tmp___0->i_vino.snap, pos, len, inode->i_size); } else { } r = ceph_get_caps(ci, 4096, want, & got, (loff_t )len + pos); if (r < 0) { return (r); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_write_begin"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : write_begin %p %llx.%llx %llu~%u got cap refs on %s\n"; descriptor___0.lineno = 1179U; descriptor___0.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___4 = ceph_cap_string(got); tmp___5 = ceph_inode(inode); tmp___6 = ceph_inode(inode); tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : write_begin %p %llx.%llx %llu~%u got cap refs on %s\n", 3, (char *)" ", tmp___7, 1179, inode, tmp___6->i_vino.ino, tmp___5->i_vino.snap, pos, len, tmp___4); } else { } if ((got & 40960) == 0) { ceph_put_cap_refs(ci, got); return (-11); } else { } ldv_29173: page = grab_cache_page_write_begin(mapping, index, 0U); if ((unsigned long )page == (unsigned long )((struct page *)0)) { r = -12; goto ldv_29171; } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_write_begin"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : write_begin file %p inode %p page %p %d~%d\n"; descriptor___1.lineno = 1194U; descriptor___1.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : write_begin file %p inode %p page %p %d~%d\n", 3, (char *)" ", tmp___9, 1194, file, inode, page, (int )pos, (int )len); } else { } r = ceph_update_writeable_page(file, pos, len, page); if (r != 0) { put_page(page); } else { } if (r == -11) { goto ldv_29173; } else { } ldv_29171: ; if (r != 0) { ceph_put_cap_refs(ci, got); } else { *pagep = page; *((int *)fsdata) = got; } return (r); } } static int ceph_write_end(struct file *file , struct address_space *mapping , loff_t pos , unsigned int len , unsigned int copied , struct page *page , void *fsdata ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp___0 ; struct ceph_mds_client *mdsc ; unsigned int from ; int check_cap ; int got ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; int dirty ; struct _ddebug descriptor___0 ; char const *tmp___4 ; struct ceph_inode_info *tmp___5 ; struct ceph_inode_info *tmp___6 ; char const *tmp___7 ; long tmp___8 ; struct ceph_inode_info *tmp___9 ; { inode = (file->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_inode_to_client(inode); fsc = tmp___0; mdsc = fsc->mdsc; from = (unsigned int )pos & 4095U; check_cap = 0; got = (int )((long )fsdata); descriptor.modname = "ceph"; descriptor.function = "ceph_write_end"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : write_end file %p inode %p page %p %d~%d (%d)\n"; descriptor.lineno = 1228U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : write_end file %p inode %p page %p %d~%d (%d)\n", 3, (char *)" ", tmp___1, 1228, file, inode, page, (int )pos, (int )copied, (int )len); } else { } if (copied < len) { zero_user_segment(page, from + copied, len); } else { } if ((loff_t )copied + pos > inode->i_size) { check_cap = ceph_inode_set_size(inode, (loff_t )copied + pos); } else { } tmp___3 = PageUptodate(page); if (tmp___3 == 0) { SetPageUptodate(page); } else { } set_page_dirty(page); unlock_page(page); up_read(& mdsc->snap_rwsem); put_page(page); if (copied != 0U) { spin_lock(& ci->i_ceph_lock); dirty = __ceph_mark_dirty_caps(ci, 4096); spin_unlock(& ci->i_ceph_lock); if (dirty != 0) { __mark_inode_dirty(inode, dirty); } else { } } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_write_end"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : write_end %p %llx.%llx %llu~%u dropping cap refs on %s\n"; descriptor___0.lineno = 1258U; descriptor___0.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___4 = ceph_cap_string(got); tmp___5 = ceph_inode(inode); tmp___6 = ceph_inode(inode); tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : write_end %p %llx.%llx %llu~%u dropping cap refs on %s\n", 3, (char *)" ", tmp___7, 1258, inode, tmp___6->i_vino.ino, tmp___5->i_vino.snap, pos, len, tmp___4); } else { } ceph_put_cap_refs(ci, got); if (check_cap != 0) { tmp___9 = ceph_inode(inode); ceph_check_caps(tmp___9, 2, 0); } else { } return ((int )copied); } } static ssize_t ceph_direct_io(int rw , struct kiocb *iocb , struct iovec const *iov , loff_t pos , unsigned long nr_segs ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 1276); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (-22L); } } struct address_space_operations const ceph_aops = {& ceph_writepage, & ceph_readpage, & ceph_writepages_start, & ceph_set_page_dirty, & ceph_readpages, & ceph_write_begin, & ceph_write_end, 0, & ceph_invalidatepage, & ceph_releasepage, 0, & ceph_direct_io, 0, 0, 0, 0, 0, 0, 0}; static int ceph_page_mkwrite(struct vm_area_struct *vma , struct vm_fault *vmf ) { struct inode *inode ; struct page *page ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; loff_t off ; loff_t tmp___0 ; loff_t size ; loff_t len ; int ret ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; { inode = ((vma->vm_file)->f_path.dentry)->d_inode; page = vmf->page; tmp = ceph_inode_to_client(inode); mdsc = tmp->mdsc; tmp___0 = page_offset(page); off = tmp___0; file_update_time(vma->vm_file); size = i_size_read((struct inode const *)inode); if ((unsigned long long )off + 4096ULL <= (unsigned long long )size) { len = 4096LL; } else { len = size & 4095LL; } descriptor.modname = "ceph"; descriptor.function = "ceph_page_mkwrite"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : page_mkwrite %p %llu~%llu page %p idx %lu\n"; descriptor.lineno = 1320U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : page_mkwrite %p %llu~%llu page %p idx %lu\n", 3, (char *)" ", tmp___1, 1320, inode, off, len, page, page->ldv_15493.ldv_15477.index); } else { } lock_page(page); ret = 256; if (off > size || (unsigned long )page->mapping != (unsigned long )inode->i_mapping) { goto out; } else { } ret = ceph_update_writeable_page(vma->vm_file, off, (unsigned int )len, page); if (ret == 0) { set_page_dirty(page); up_read(& mdsc->snap_rwsem); ret = 512; } else if (ret == -12) { ret = 1; } else { ret = 2; } out: descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_page_mkwrite"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : page_mkwrite %p %llu~%llu = %d\n"; descriptor___0.lineno = 1342U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/addr.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : page_mkwrite %p %llu~%llu = %d\n", 3, (char *)" ", tmp___3, 1342, inode, off, len, ret); } else { } if (ret != 512) { unlock_page(page); } else { } return (ret); } } static struct vm_operations_struct ceph_vmops = {0, 0, & filemap_fault, & ceph_page_mkwrite, 0, 0, 0, 0, & generic_file_remap_pages}; int ceph_mmap(struct file *file , struct vm_area_struct *vma ) { struct address_space *mapping ; { mapping = file->f_mapping; if ((unsigned long )(mapping->a_ops)->readpage == (unsigned long )((int (*/* const */)(struct file * , struct page * ))0)) { return (-8); } else { } file_accessed(file); vma->vm_ops = (struct vm_operations_struct const *)(& ceph_vmops); return (0); } } void ldv_main5_sequence_infinite_withcheck_stateful(void) { struct file *var_group1 ; struct page *var_group2 ; struct address_space *var_group3 ; struct list_head *var_ceph_readpages_9_p2 ; unsigned int var_ceph_readpages_9_p3 ; struct writeback_control *var_group4 ; loff_t var_ceph_write_begin_19_p2 ; unsigned int var_ceph_write_begin_19_p3 ; unsigned int var_ceph_write_begin_19_p4 ; struct page **var_ceph_write_begin_19_p5 ; void **var_ceph_write_begin_19_p6 ; loff_t var_ceph_write_end_20_p2 ; unsigned int var_ceph_write_end_20_p3 ; unsigned int var_ceph_write_end_20_p4 ; struct page *var_ceph_write_end_20_p5 ; void *var_ceph_write_end_20_p6 ; unsigned long var_ceph_invalidatepage_2_p1 ; gfp_t var_ceph_releasepage_3_p1 ; int var_ceph_direct_io_21_p0 ; struct kiocb *var_group5 ; struct iovec const *var_ceph_direct_io_21_p2 ; loff_t var_ceph_direct_io_21_p3 ; unsigned long var_ceph_direct_io_21_p4 ; struct vm_area_struct *var_group6 ; struct vm_fault *var_group7 ; int tmp ; int tmp___0 ; { LDV_IN_INTERRUPT = 1; ldv_initialize(); goto ldv_29280; ldv_29279: tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ldv_handler_precall(); ceph_readpage(var_group1, var_group2); goto ldv_29267; case 1: ldv_handler_precall(); ceph_readpages(var_group1, var_group3, var_ceph_readpages_9_p2, var_ceph_readpages_9_p3); goto ldv_29267; case 2: ldv_handler_precall(); ceph_writepage(var_group2, var_group4); goto ldv_29267; case 3: ldv_handler_precall(); ceph_writepages_start(var_group3, var_group4); goto ldv_29267; case 4: ldv_handler_precall(); ceph_write_begin(var_group1, var_group3, var_ceph_write_begin_19_p2, var_ceph_write_begin_19_p3, var_ceph_write_begin_19_p4, var_ceph_write_begin_19_p5, var_ceph_write_begin_19_p6); goto ldv_29267; case 5: ldv_handler_precall(); ceph_write_end(var_group1, var_group3, var_ceph_write_end_20_p2, var_ceph_write_end_20_p3, var_ceph_write_end_20_p4, var_ceph_write_end_20_p5, var_ceph_write_end_20_p6); goto ldv_29267; case 6: ldv_handler_precall(); ceph_set_page_dirty(var_group2); goto ldv_29267; case 7: ldv_handler_precall(); ceph_invalidatepage(var_group2, var_ceph_invalidatepage_2_p1); goto ldv_29267; case 8: ldv_handler_precall(); ceph_releasepage(var_group2, var_ceph_releasepage_3_p1); goto ldv_29267; case 9: ldv_handler_precall(); ceph_direct_io(var_ceph_direct_io_21_p0, var_group5, var_ceph_direct_io_21_p2, var_ceph_direct_io_21_p3, var_ceph_direct_io_21_p4); goto ldv_29267; case 10: ldv_handler_precall(); ceph_page_mkwrite(var_group6, var_group7); goto ldv_29267; default: ; goto ldv_29267; } ldv_29267: ; ldv_29280: tmp___0 = __VERIFIER_nondet_int(); if (tmp___0 != 0) { goto ldv_29279; } else { } ldv_check_final_state(); return; } } void ldv_mutex_lock_75(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_76(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_77(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_78(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } extern void warn_slowpath_fmt(char const * , int const , char const * , ...) ; void ldv_mutex_unlock_84(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_86(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_88(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_83(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_85(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_87(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_mutex(struct mutex *lock ) ; void ldv_mutex_unlock_mutex(struct mutex *lock ) ; extern unsigned long _copy_from_user(void * , void const * , unsigned int ) ; __inline static unsigned long copy_from_user(void *to , void const *from , unsigned long n ) { int sz ; unsigned long tmp ; int __ret_warn_on ; long tmp___0 ; long tmp___1 ; long tmp___2 ; { tmp = __builtin_object_size((void const *)to, 0); sz = (int )tmp; might_fault(); tmp___1 = ldv__builtin_expect(sz == -1, 1L); if (tmp___1 != 0L) { n = _copy_from_user(to, from, (unsigned int )n); } else { tmp___2 = ldv__builtin_expect((unsigned long )sz >= n, 1L); if (tmp___2 != 0L) { n = _copy_from_user(to, from, (unsigned int )n); } else { __ret_warn_on = 1; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_fmt("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/inst/current/envs/linux-3.8-rc1/linux-3.8-rc1/arch/x86/include/asm/uaccess_64.h", 66, "Buffer overflow detected!\n"); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } } return (n); } } __inline static struct ceph_entity_addr *ceph_osd_addr(struct ceph_osdmap *map , int osd ) { { if ((u32 )osd >= map->max_osd) { return (0); } else { } return (map->osd_addr + (unsigned long )osd); } } extern int ceph_calc_file_object_mapping(struct ceph_file_layout * , u64 , u64 * , u64 * , u64 * , u64 * ) ; extern int ceph_calc_object_layout(struct ceph_object_layout * , char const * , struct ceph_file_layout * , struct ceph_osdmap * ) ; extern int ceph_calc_pg_primary(struct ceph_osdmap * , struct ceph_pg ) ; static long ceph_ioctl_get_layout(struct file *file , void *arg ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_ioctl_layout l ; int err ; int tmp___0 ; { tmp = ceph_inode((file->f_path.dentry)->d_inode); ci = tmp; err = ceph_do_getattr((file->f_path.dentry)->d_inode, 256); if (err == 0) { l.stripe_unit = (__u64 )((int )ci->i_layout.fl_stripe_unit); l.stripe_count = (__u64 )((int )ci->i_layout.fl_stripe_count); l.object_size = (__u64 )((int )ci->i_layout.fl_object_size); l.data_pool = (__u64 )ci->i_layout.fl_pg_pool; l.preferred_osd = -1LL; tmp___0 = copy_to_user(arg, (void const *)(& l), 40U); if (tmp___0 != 0) { return (-14L); } else { } } else { } return ((long )err); } } static long __validate_layout(struct ceph_mds_client *mdsc , struct ceph_ioctl_layout *l ) { int i ; int err ; { if (((l->object_size & 4095ULL) != 0ULL || (l->stripe_unit & 4095ULL) != 0ULL) || (l->stripe_unit != 0ULL && (unsigned int )l->object_size % (unsigned int )l->stripe_unit != 0U)) { return (-22L); } else { } ldv_mutex_lock_87(& mdsc->mutex); err = -22; i = 0; goto ldv_28734; ldv_28733: ; if ((__u64 )*((mdsc->mdsmap)->m_data_pg_pools + (unsigned long )i) == l->data_pool) { err = 0; goto ldv_28732; } else { } i = i + 1; ldv_28734: ; if ((mdsc->mdsmap)->m_num_data_pg_pools > i) { goto ldv_28733; } else { } ldv_28732: ldv_mutex_unlock_88(& mdsc->mutex); if (err != 0) { return ((long )err); } else { } return (0L); } } static long ceph_ioctl_set_layout(struct file *file , void *arg ) { struct inode *inode ; struct inode *parent_inode ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; struct ceph_mds_request *req ; struct ceph_ioctl_layout l ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___0 ; struct ceph_ioctl_layout nl ; int err ; unsigned long tmp___1 ; long tmp___2 ; long tmp___3 ; long tmp___4 ; { inode = (file->f_path.dentry)->d_inode; tmp = ceph_sb_to_client(inode->i_sb); mdsc = tmp->mdsc; tmp___0 = ceph_inode((file->f_path.dentry)->d_inode); ci = tmp___0; tmp___1 = copy_from_user((void *)(& l), (void const *)arg, 40UL); if (tmp___1 != 0UL) { return (-14L); } else { } err = ceph_do_getattr((file->f_path.dentry)->d_inode, 256); if (err != 0) { return ((long )err); } else { } memset((void *)(& nl), 0, 40UL); if (l.stripe_count != 0ULL) { nl.stripe_count = l.stripe_count; } else { nl.stripe_count = (__u64 )((int )ci->i_layout.fl_stripe_count); } if (l.stripe_unit != 0ULL) { nl.stripe_unit = l.stripe_unit; } else { nl.stripe_unit = (__u64 )((int )ci->i_layout.fl_stripe_unit); } if (l.object_size != 0ULL) { nl.object_size = l.object_size; } else { nl.object_size = (__u64 )((int )ci->i_layout.fl_object_size); } if (l.data_pool != 0ULL) { nl.data_pool = l.data_pool; } else { nl.data_pool = (__u64 )((int )ci->i_layout.fl_pg_pool); } nl.preferred_osd = -1LL; tmp___2 = __validate_layout(mdsc, & nl); err = (int )tmp___2; if (err != 0) { return ((long )err); } else { } req = ceph_mdsc_create_request(mdsc, 4359, 2); tmp___4 = IS_ERR((void const *)req); if (tmp___4 != 0L) { tmp___3 = PTR_ERR((void const *)req); return (tmp___3); } else { } req->r_inode = inode; ihold(inode); req->r_inode_drop = 768; req->r_args.setlayout.layout.fl_stripe_unit = (unsigned int )l.stripe_unit; req->r_args.setlayout.layout.fl_stripe_count = (unsigned int )l.stripe_count; req->r_args.setlayout.layout.fl_object_size = (unsigned int )l.object_size; req->r_args.setlayout.layout.fl_pg_pool = (unsigned int )l.data_pool; parent_inode = ceph_get_dentry_parent_inode(file->f_path.dentry); err = ceph_mdsc_do_request(mdsc, parent_inode, req); iput(parent_inode); ceph_mdsc_put_request(req); return ((long )err); } } static long ceph_ioctl_set_layout_policy(struct file *file , void *arg ) { struct inode *inode ; struct ceph_mds_request *req ; struct ceph_ioctl_layout l ; int err ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; unsigned long tmp___0 ; long tmp___1 ; long tmp___2 ; long tmp___3 ; { inode = (file->f_path.dentry)->d_inode; tmp = ceph_sb_to_client(inode->i_sb); mdsc = tmp->mdsc; tmp___0 = copy_from_user((void *)(& l), (void const *)arg, 40UL); if (tmp___0 != 0UL) { return (-14L); } else { } tmp___1 = __validate_layout(mdsc, & l); err = (int )tmp___1; if (err != 0) { return ((long )err); } else { } req = ceph_mdsc_create_request(mdsc, 4362, 2); tmp___3 = IS_ERR((void const *)req); if (tmp___3 != 0L) { tmp___2 = PTR_ERR((void const *)req); return (tmp___2); } else { } req->r_inode = inode; ihold(inode); req->r_args.setlayout.layout.fl_stripe_unit = (unsigned int )l.stripe_unit; req->r_args.setlayout.layout.fl_stripe_count = (unsigned int )l.stripe_count; req->r_args.setlayout.layout.fl_object_size = (unsigned int )l.object_size; req->r_args.setlayout.layout.fl_pg_pool = (unsigned int )l.data_pool; err = ceph_mdsc_do_request(mdsc, inode, req); ceph_mdsc_put_request(req); return ((long )err); } } static long ceph_ioctl_get_dataloc(struct file *file , void *arg ) { struct ceph_ioctl_dataloc dl ; struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_osd_client *osdc ; struct ceph_fs_client *tmp___0 ; u64 len ; u64 olen ; u64 tmp___1 ; struct ceph_object_layout ol ; struct ceph_pg pgid ; int r ; unsigned long tmp___2 ; uint32_t __base ; uint32_t __rem ; u64 tmp___3 ; int tmp___4 ; struct ceph_entity_addr *a ; struct ceph_entity_addr *tmp___5 ; size_t __len ; void *__ret ; int tmp___6 ; { inode = (file->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_sb_to_client(inode->i_sb); osdc = & (tmp___0->client)->osdc; len = 1ULL; tmp___2 = copy_from_user((void *)(& dl), (void const *)arg, 248UL); if (tmp___2 != 0UL) { return (-14L); } else { } down_read(& osdc->map_sem); r = ceph_calc_file_object_mapping(& ci->i_layout, dl.file_offset, & len, & dl.object_no, & dl.object_offset, & olen); if (r < 0) { return (-5L); } else { } dl.file_offset = dl.file_offset - dl.object_offset; dl.object_size = (__u64 )((int )ci->i_layout.fl_object_size); dl.block_size = (__u64 )((int )ci->i_layout.fl_stripe_unit); tmp___1 = dl.object_offset; __base = (uint32_t )dl.block_size; __rem = (uint32_t )(tmp___1 % (u64 )__base); tmp___1 = tmp___1 / (u64 )__base; dl.block_offset = (__u64 )__rem; tmp___3 = ceph_ino(inode); snprintf((char *)(& dl.object_name), 64UL, "%llx.%08llx", tmp___3, dl.object_no); ceph_calc_object_layout(& ol, (char const *)(& dl.object_name), & ci->i_layout, osdc->osdmap); pgid = ol.ol_pgid; tmp___4 = ceph_calc_pg_primary(osdc->osdmap, pgid); dl.osd = (__s64 )tmp___4; if (dl.osd >= 0LL) { tmp___5 = ceph_osd_addr(osdc->osdmap, (int )dl.osd); a = tmp___5; if ((unsigned long )a != (unsigned long )((struct ceph_entity_addr *)0)) { __len = 128UL; if (__len > 63UL) { __ret = memcpy((void *)(& dl.osd_addr), (void const *)(& a->in_addr), __len); } else { __ret = memcpy((void *)(& dl.osd_addr), (void const *)(& a->in_addr), __len); } } else { } } else { memset((void *)(& dl.osd_addr), 0, 128UL); } up_read(& osdc->map_sem); tmp___6 = copy_to_user(arg, (void const *)(& dl), 248U); if (tmp___6 != 0) { return (-14L); } else { } return (0L); } } static long ceph_ioctl_lazyio(struct file *file ) { struct ceph_file_info *fi ; struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; { fi = (struct ceph_file_info *)file->private_data; inode = (file->f_path.dentry)->d_inode; tmp = ceph_inode(inode); ci = tmp; if (((int )fi->fmode & 4) == 0) { spin_lock(& ci->i_ceph_lock); ci->i_nr_by_mode[(int )fi->fmode] = ci->i_nr_by_mode[(int )fi->fmode] - 1; fi->fmode = (int )fi->fmode | 4; ci->i_nr_by_mode[(int )fi->fmode] = ci->i_nr_by_mode[(int )fi->fmode] + 1; spin_unlock(& ci->i_ceph_lock); descriptor.modname = "ceph"; descriptor.function = "ceph_ioctl_lazyio"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/ioctl.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ioctl_layzio: file %p marked lazy\n"; descriptor.lineno = 317U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/ioctl.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ioctl_layzio: file %p marked lazy\n", 3, (char *)" ", tmp___0, 317, file); } else { } ceph_check_caps(ci, 0, 0); } else { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_ioctl_lazyio"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/ioctl.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : ioctl_layzio: file %p already lazy\n"; descriptor___0.lineno = 321U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/ioctl.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : ioctl_layzio: file %p already lazy\n", 3, (char *)" ", tmp___2, 321, file); } else { } } return (0L); } } static long ceph_ioctl_syncio(struct file *file ) { struct ceph_file_info *fi ; { fi = (struct ceph_file_info *)file->private_data; fi->flags = (int )fi->flags | 1; return (0L); } } long ceph_ioctl(struct file *file , unsigned int cmd , unsigned long arg ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; long tmp___1 ; long tmp___2 ; long tmp___3 ; long tmp___4 ; long tmp___5 ; long tmp___6 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_ioctl"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/ioctl.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ioctl file %p cmd %u arg %lu\n"; descriptor.lineno = 336U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/ioctl.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ioctl file %p cmd %u arg %lu\n", 3, (char *)" ", tmp, 336, file, cmd, arg); } else { } switch (cmd) { case 2150143745U: tmp___1 = ceph_ioctl_get_layout(file, (void *)arg); return (tmp___1); case 1076401922U: tmp___2 = ceph_ioctl_set_layout(file, (void *)arg); return (tmp___2); case 1076401925U: tmp___3 = ceph_ioctl_set_layout_policy(file, (void *)arg); return (tmp___3); case 3237517059U: tmp___4 = ceph_ioctl_get_dataloc(file, (void *)arg); return (tmp___4); case 38660U: tmp___5 = ceph_ioctl_lazyio(file); return (tmp___5); case 38661U: tmp___6 = ceph_ioctl_syncio(file); return (tmp___6); } return (-25L); } } void ldv_mutex_lock_83(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_84(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_85(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_86(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_87(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_88(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_96(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_98(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_95(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_97(struct mutex *ldv_func_arg1 ) ; extern struct inode *ilookup5(struct super_block * , unsigned long , int (*)(struct inode * , void * ) , void * ) ; __inline static struct inode *ceph_find_inode(struct super_block *sb , struct ceph_vino vino ) { ino_t t ; ino_t tmp ; struct inode *tmp___0 ; { tmp = ceph_vino_to_ino(vino); t = tmp; tmp___0 = ilookup5(sb, t, & ceph_ino_compare, (void *)(& vino)); return (tmp___0); } } static int ceph_encode_fh(struct inode *inode , u32 *rawfh , int *max_len , struct inode *parent_inode ) { int type ; struct ceph_nfs_fh *fh ; struct ceph_nfs_confh *cfh ; int connected_handle_length ; int handle_length ; struct dentry *dentry ; struct dentry *parent ; u64 tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; { fh = (struct ceph_nfs_fh *)rawfh; cfh = (struct ceph_nfs_confh *)rawfh; connected_handle_length = 5; handle_length = 2; tmp = ceph_snap(inode); if (tmp != 0xfffffffffffffffeULL) { return (-22); } else { } dentry = d_find_alias(inode); if (*max_len >= connected_handle_length && (unsigned long )dentry != (unsigned long )((struct dentry *)0)) { descriptor.modname = "ceph"; descriptor.function = "ceph_encode_fh"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : encode_fh %p connectable\n"; descriptor.lineno = 142U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared", 262); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : encode_fh %p connectable\n", 3, (char *)" ", tmp___0, 142, dentry); } else { } spin_lock(& dentry->d_lock); parent = dentry->d_parent; cfh->ino = ceph_ino(inode); cfh->parent_ino = ceph_ino(parent->d_inode); cfh->parent_name_hash = ceph_dentry_hash(parent->d_inode, dentry); *max_len = connected_handle_length; type = 2; spin_unlock(& dentry->d_lock); } else if (*max_len >= handle_length) { if ((unsigned long )parent_inode != (unsigned long )((struct inode *)0)) { *max_len = connected_handle_length; type = 255; } else { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_encode_fh"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : encode_fh %p\n"; descriptor___0.lineno = 158U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared", 262); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : encode_fh %p\n", 3, (char *)" ", tmp___2, 158, dentry); } else { } fh->ino = ceph_ino(inode); *max_len = handle_length; type = 1; } } else { *max_len = handle_length; type = 255; } if ((unsigned long )dentry != (unsigned long )((struct dentry *)0)) { dput(dentry); } else { } return (type); } } static struct dentry *__fh_to_dentry(struct super_block *sb , struct ceph_nfs_fh *fh , int fh_len ) { struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; struct inode *inode ; struct dentry *dentry ; struct ceph_vino vino ; int err ; void *tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct ceph_mds_request *req ; void *tmp___3 ; long tmp___4 ; void *tmp___5 ; long tmp___6 ; void *tmp___7 ; struct _ddebug descriptor___0 ; char const *tmp___8 ; long tmp___9 ; { tmp = ceph_sb_to_client(sb); mdsc = tmp->mdsc; if ((unsigned int )fh_len <= 1U) { tmp___0 = ERR_PTR(-116L); return ((struct dentry *)tmp___0); } else { } descriptor.modname = "ceph"; descriptor.function = "__fh_to_dentry"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __fh_to_dentry %llx\n"; descriptor.lineno = 189U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared", 262); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __fh_to_dentry %llx\n", 3, (char *)" ", tmp___1, 189, fh->ino); } else { } vino.ino = fh->ino; vino.snap = 0xfffffffffffffffeULL; inode = ceph_find_inode(sb, vino); if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { req = ceph_mdsc_create_request(mdsc, 260, 0); tmp___4 = IS_ERR((void const *)req); if (tmp___4 != 0L) { tmp___3 = ERR_CAST((void const *)req); return ((struct dentry *)tmp___3); } else { } req->r_ino1 = vino; req->r_num_caps = 1; err = ceph_mdsc_do_request(mdsc, 0, req); inode = req->r_target_inode; if ((unsigned long )inode != (unsigned long )((struct inode *)0)) { ihold(inode); } else { } ceph_mdsc_put_request(req); if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { tmp___5 = ERR_PTR(-116L); return ((struct dentry *)tmp___5); } else { } } else { } dentry = d_obtain_alias(inode); tmp___6 = IS_ERR((void const *)dentry); if (tmp___6 != 0L) { printk("\vceph: fh_to_dentry %llx -- inode %p but ENOMEM\n", fh->ino, inode); iput(inode); return (dentry); } else { } err = ceph_init_dentry(dentry); if (err < 0) { iput(inode); tmp___7 = ERR_PTR((long )err); return ((struct dentry *)tmp___7); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "__fh_to_dentry"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : __fh_to_dentry %llx %p dentry %p\n"; descriptor___0.lineno = 224U; descriptor___0.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared", 262); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : __fh_to_dentry %llx %p dentry %p\n", 3, (char *)" ", tmp___8, 224, fh->ino, inode, dentry); } else { } return (dentry); } } static struct dentry *__cfh_to_dentry(struct super_block *sb , struct ceph_nfs_confh *cfh , int fh_len ) { struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; struct inode *inode ; struct dentry *dentry ; struct ceph_vino vino ; int err ; void *tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct ceph_mds_request *req ; void *tmp___3 ; long tmp___4 ; void *tmp___5 ; void *tmp___6 ; long tmp___7 ; void *tmp___8 ; struct _ddebug descriptor___0 ; char const *tmp___9 ; long tmp___10 ; { tmp = ceph_sb_to_client(sb); mdsc = tmp->mdsc; if ((unsigned int )fh_len <= 4U) { tmp___0 = ERR_PTR(-116L); return ((struct dentry *)tmp___0); } else { } descriptor.modname = "ceph"; descriptor.function = "__cfh_to_dentry"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __cfh_to_dentry %llx (%llx/%x)\n"; descriptor.lineno = 244U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared", 262); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __cfh_to_dentry %llx (%llx/%x)\n", 3, (char *)" ", tmp___1, 244, cfh->ino, cfh->parent_ino, cfh->parent_name_hash); } else { } vino.ino = cfh->ino; vino.snap = 0xfffffffffffffffeULL; inode = ceph_find_inode(sb, vino); if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { req = ceph_mdsc_create_request(mdsc, 258, 0); tmp___4 = IS_ERR((void const *)req); if (tmp___4 != 0L) { tmp___3 = ERR_CAST((void const *)req); return ((struct dentry *)tmp___3); } else { } req->r_ino1 = vino; req->r_ino2.ino = cfh->parent_ino; req->r_ino2.snap = 0xfffffffffffffffeULL; tmp___5 = kmalloc(16UL, 80U); req->r_path2 = (char *)tmp___5; snprintf(req->r_path2, 16UL, "%d", cfh->parent_name_hash); req->r_num_caps = 1; err = ceph_mdsc_do_request(mdsc, 0, req); inode = req->r_target_inode; if ((unsigned long )inode != (unsigned long )((struct inode *)0)) { ihold(inode); } else { } ceph_mdsc_put_request(req); if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { tmp___6 = ERR_PTR(err != 0 ? (long )err : -116L); return ((struct dentry *)tmp___6); } else { } } else { } dentry = d_obtain_alias(inode); tmp___7 = IS_ERR((void const *)dentry); if (tmp___7 != 0L) { printk("\vceph: cfh_to_dentry %llx -- inode %p but ENOMEM\n", cfh->ino, inode); iput(inode); return (dentry); } else { } err = ceph_init_dentry(dentry); if (err < 0) { iput(inode); tmp___8 = ERR_PTR((long )err); return ((struct dentry *)tmp___8); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "__cfh_to_dentry"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : __cfh_to_dentry %llx %p dentry %p\n"; descriptor___0.lineno = 284U; descriptor___0.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared", 262); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : __cfh_to_dentry %llx %p dentry %p\n", 3, (char *)" ", tmp___9, 284, cfh->ino, inode, dentry); } else { } return (dentry); } } static struct dentry *ceph_fh_to_dentry(struct super_block *sb , struct fid *fid , int fh_len , int fh_type ) { struct dentry *tmp ; struct dentry *tmp___0 ; { if (fh_type == 1) { tmp = __fh_to_dentry(sb, (struct ceph_nfs_fh *)(& fid->ldv_22354.raw), fh_len); return (tmp); } else { tmp___0 = __cfh_to_dentry(sb, (struct ceph_nfs_confh *)(& fid->ldv_22354.raw), fh_len); return (tmp___0); } } } static struct dentry *ceph_fh_to_parent(struct super_block *sb , struct fid *fid , int fh_len , int fh_type ) { struct ceph_nfs_confh *cfh ; struct ceph_vino vino ; struct inode *inode ; struct dentry *dentry ; int err ; void *tmp ; void *tmp___0 ; struct _ddebug descriptor ; long tmp___1 ; void *tmp___2 ; long tmp___3 ; void *tmp___4 ; struct _ddebug descriptor___0 ; char const *tmp___5 ; long tmp___6 ; { cfh = (struct ceph_nfs_confh *)(& fid->ldv_22354.raw); if (fh_type == 1) { tmp = ERR_PTR(-116L); return ((struct dentry *)tmp); } else { } if ((unsigned int )fh_len <= 4U) { tmp___0 = ERR_PTR(-116L); return ((struct dentry *)tmp___0); } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_fh_to_parent"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared"; descriptor.format = "fh_to_parent %llx/%d\n"; descriptor.lineno = 321U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { __dynamic_pr_debug(& descriptor, "ceph: fh_to_parent %llx/%d\n", cfh->parent_ino, cfh->parent_name_hash); } else { } vino.ino = cfh->ino; vino.snap = 0xfffffffffffffffeULL; inode = ceph_find_inode(sb, vino); if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { tmp___2 = ERR_PTR(-116L); return ((struct dentry *)tmp___2); } else { } dentry = d_obtain_alias(inode); tmp___3 = IS_ERR((void const *)dentry); if (tmp___3 != 0L) { printk("\vceph: fh_to_parent %llx -- inode %p but ENOMEM\n", cfh->ino, inode); iput(inode); return (dentry); } else { } err = ceph_init_dentry(dentry); if (err < 0) { iput(inode); tmp___4 = ERR_PTR((long )err); return ((struct dentry *)tmp___4); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_fh_to_parent"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : fh_to_parent %llx %p dentry %p\n"; descriptor___0.lineno = 341U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/export.c.prepared", 262); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : fh_to_parent %llx %p dentry %p\n", 3, (char *)" ", tmp___5, 341, cfh->ino, inode, dentry); } else { } return (dentry); } } struct export_operations const ceph_export_ops = {& ceph_encode_fh, & ceph_fh_to_dentry, & ceph_fh_to_parent, 0, 0, 0}; int main(void) { struct inode *var_group1 ; u32 *var_ceph_encode_fh_0_p1 ; int *var_ceph_encode_fh_0_p2 ; struct inode *var_ceph_encode_fh_0_p3 ; struct super_block *var_group2 ; struct fid *var_group3 ; int var_ceph_fh_to_dentry_3_p2 ; int var_ceph_fh_to_dentry_3_p3 ; int var_ceph_fh_to_parent_4_p2 ; int var_ceph_fh_to_parent_4_p3 ; int tmp ; int tmp___0 ; { LDV_IN_INTERRUPT = 1; ldv_initialize(); goto ldv_28798; ldv_28797: tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ldv_handler_precall(); ceph_encode_fh(var_group1, var_ceph_encode_fh_0_p1, var_ceph_encode_fh_0_p2, var_ceph_encode_fh_0_p3); goto ldv_28793; case 1: ldv_handler_precall(); ceph_fh_to_dentry(var_group2, var_group3, var_ceph_fh_to_dentry_3_p2, var_ceph_fh_to_dentry_3_p3); goto ldv_28793; case 2: ldv_handler_precall(); ceph_fh_to_parent(var_group2, var_group3, var_ceph_fh_to_parent_4_p2, var_ceph_fh_to_parent_4_p3); goto ldv_28793; default: ; goto ldv_28793; } ldv_28793: ; ldv_28798: tmp___0 = __VERIFIER_nondet_int(); if (tmp___0 != 0) { goto ldv_28797; } else { } ldv_check_final_state(); return 0; } } void ldv_mutex_lock_95(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_96(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_97(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_98(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } __inline static __u32 __le32_to_cpup(__le32 const *p ) { { return ((__u32 )*p); } } __inline static void le32_add_cpu(__le32 *var , u32 val ) { { *var = *var + val; return; } } __inline static void __list_splice(struct list_head const *list , struct list_head *prev , struct list_head *next ) { struct list_head *first ; struct list_head *last ; { first = list->next; last = list->prev; first->prev = prev; prev->next = first; last->next = next; next->prev = last; return; } } __inline static void list_splice(struct list_head const *list , struct list_head *head ) { int tmp ; { tmp = list_empty(list); if (tmp == 0) { __list_splice(list, head, head->next); } else { } return; } } extern int mutex_trylock(struct mutex * ) ; int ldv_mutex_trylock_113(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_104(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_106(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_107(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_109(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_111(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_112(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_115(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_117(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_119(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_120(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_122(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_103(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_105(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_108(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_110(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_114(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_116(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_118(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_121(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_s_mutex(struct mutex *lock ) ; int ldv_mutex_trylock_s_mutex(struct mutex *lock ) ; void ldv_mutex_unlock_s_mutex(struct mutex *lock ) ; extern struct rb_node *rb_next(struct rb_node const * ) ; extern int down_read_trylock(struct rw_semaphore * ) ; extern void down_write(struct rw_semaphore * ) ; extern void downgrade_write(struct rw_semaphore * ) ; extern unsigned long round_jiffies(unsigned long ) ; extern unsigned long invalidate_mapping_pages(struct address_space * , unsigned long , unsigned long ) ; __inline static u32 get_unaligned_le32(void const *p ) { __u32 tmp ; { tmp = __le32_to_cpup((__le32 const *)p); return (tmp); } } char const *ceph_cap_op_name(int op ) ; __inline static struct ceph_buffer *ceph_buffer_get(struct ceph_buffer *b ) { { kref_get(& b->kref); return (b); } } extern void ceph_con_send(struct ceph_connection * , struct ceph_msg * ) ; extern struct ceph_msg *ceph_msg_new(int , int , gfp_t , bool ) ; extern void ceph_msg_dump(struct ceph_msg * ) ; __inline static void ceph_osdc_get_request(struct ceph_osd_request *req ) { { kref_get(& req->r_kref); return; } } __inline static void ceph_put_cap_snap(struct ceph_cap_snap *capsnap ) { int tmp ; { tmp = atomic_dec_and_test(& capsnap->nref); if (tmp != 0) { if ((unsigned long )capsnap->xattr_blob != (unsigned long )((struct ceph_buffer *)0)) { ceph_buffer_put(capsnap->xattr_blob); } else { } kfree((void const *)capsnap); } else { } return; } } int __ceph_caps_issued_other(struct ceph_inode_info *ci , struct ceph_cap *ocap ) ; void ceph_caps_init(struct ceph_mds_client *mdsc ) ; void ceph_caps_finalize(struct ceph_mds_client *mdsc ) ; void ceph_adjust_min_caps(struct ceph_mds_client *mdsc , int delta ) ; int ceph_reserve_caps(struct ceph_mds_client *mdsc , struct ceph_cap_reservation *ctx , int need ) ; int ceph_unreserve_caps(struct ceph_mds_client *mdsc , struct ceph_cap_reservation *ctx ) ; void ceph_reservation_status(struct ceph_fs_client *fsc , int *total , int *avail , int *used , int *reserved , int *min ) ; struct ceph_snap_realm *ceph_lookup_snap_realm(struct ceph_mds_client *mdsc , u64 ino ) ; void ceph_get_snap_realm(struct ceph_mds_client *mdsc , struct ceph_snap_realm *realm ) ; int ceph_update_snap_trace(struct ceph_mds_client *mdsc , void *p , void *e , bool deletion ) ; int __ceph_finish_cap_snap(struct ceph_inode_info *ci , struct ceph_cap_snap *capsnap ) ; __inline static bool __ceph_have_pending_cap_snap(struct ceph_inode_info *ci ) { int tmp ; struct list_head const *__mptr ; int tmp___0 ; { tmp = list_empty((struct list_head const *)(& ci->i_cap_snaps)); if (tmp == 0) { __mptr = (struct list_head const *)ci->i_cap_snaps.prev; if (((struct ceph_cap_snap *)__mptr + 0xfffffffffffffff0UL)->writing != 0) { tmp___0 = 1; } else { tmp___0 = 0; } } else { tmp___0 = 0; } return ((bool )tmp___0); } } void __ceph_build_xattrs_blob(struct ceph_inode_info *ci ) ; void ceph_handle_caps(struct ceph_mds_session *session , struct ceph_msg *msg ) ; void __ceph_remove_cap(struct ceph_cap *cap ) ; void ceph_put_cap(struct ceph_mds_client *mdsc , struct ceph_cap *cap ) ; void ceph_kick_flushing_caps(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) ; struct ceph_cap *ceph_get_cap_for_mds(struct ceph_inode_info *ci , int mds ) ; int ceph_get_cap_mds(struct inode *inode ) ; void __ceph_flush_snaps(struct ceph_inode_info *ci , struct ceph_mds_session **psession , int again ) ; void ceph_check_delayed_caps(struct ceph_mds_client *mdsc ) ; int ceph_encode_inode_release(void **p , struct inode *inode , int mds , int drop , int unless , int force ) ; int ceph_encode_dentry_release(void **p , struct dentry *dentry , int mds , int drop , int unless ) ; struct ceph_mds_session *__ceph_lookup_mds_session(struct ceph_mds_client *mdsc , int mds ) ; int ceph_add_cap_releases(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) ; void ceph_send_cap_releases(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) ; void __ceph_mdsc_drop_dentry_lease(struct dentry *dentry ) ; void ceph_mdsc_open_export_target_sessions(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) ; __inline static u32 ceph_decode_32(void **p ) { u32 v ; u32 tmp ; { tmp = get_unaligned_le32((void const *)*p); v = tmp; *p = *p + 4UL; return (v); } } __inline static int ceph_has_room(void **p , void *end , size_t n ) { { return ((unsigned long )*p <= (unsigned long )end && (unsigned long )((long )end - (long )*p) >= n); } } static char cap_str[20U][40U] ; static spinlock_t cap_str_lock = {{{{{0U}}, 3735899821U, 4294967295U, 0xffffffffffffffffUL, {0, {0, 0}, "cap_str_lock", 0, 0UL}}}}; static int last_cap_str ; static char *gcap_string(char *s , int c ) { char *tmp ; char *tmp___0 ; char *tmp___1 ; char *tmp___2 ; char *tmp___3 ; char *tmp___4 ; char *tmp___5 ; { if (c & 1) { tmp = s; s = s + 1; *tmp = 115; } else { } if ((c & 2) != 0) { tmp___0 = s; s = s + 1; *tmp___0 = 120; } else { } if ((c & 4) != 0) { tmp___1 = s; s = s + 1; *tmp___1 = 99; } else { } if ((c & 8) != 0) { tmp___2 = s; s = s + 1; *tmp___2 = 114; } else { } if ((c & 16) != 0) { tmp___3 = s; s = s + 1; *tmp___3 = 119; } else { } if ((c & 32) != 0) { tmp___4 = s; s = s + 1; *tmp___4 = 98; } else { } if ((c & 128) != 0) { tmp___5 = s; s = s + 1; *tmp___5 = 108; } else { } return (s); } } char const *ceph_cap_string(int caps ) { int i ; char *s ; int c ; int tmp ; char *tmp___0 ; char *tmp___1 ; char *tmp___2 ; char *tmp___3 ; char *tmp___4 ; char *tmp___5 ; { spin_lock(& cap_str_lock); tmp = last_cap_str; last_cap_str = last_cap_str + 1; i = tmp; if (last_cap_str == 20) { last_cap_str = 0; } else { } spin_unlock(& cap_str_lock); s = (char *)(& cap_str) + (unsigned long )i; if (caps & 1) { tmp___0 = s; s = s + 1; *tmp___0 = 112; } else { } c = (caps >> 2) & 3; if (c != 0) { tmp___1 = s; s = s + 1; *tmp___1 = 65; s = gcap_string(s, c); } else { } c = (caps >> 4) & 3; if (c != 0) { tmp___2 = s; s = s + 1; *tmp___2 = 76; s = gcap_string(s, c); } else { } c = (caps >> 6) & 3; if (c != 0) { tmp___3 = s; s = s + 1; *tmp___3 = 88; s = gcap_string(s, c); } else { } c = caps >> 8; if (c != 0) { tmp___4 = s; s = s + 1; *tmp___4 = 70; s = gcap_string(s, c); } else { } if ((unsigned long )((char *)(& cap_str) + (unsigned long )i) == (unsigned long )s) { tmp___5 = s; s = s + 1; *tmp___5 = 45; } else { } *s = 0; return ((char const *)(& cap_str) + (unsigned long )i); } } void ceph_caps_init(struct ceph_mds_client *mdsc ) { struct lock_class_key __key ; { INIT_LIST_HEAD(& mdsc->caps_list); spinlock_check(& mdsc->caps_list_lock); __raw_spin_lock_init(& mdsc->caps_list_lock.ldv_5961.rlock, "&(&mdsc->caps_list_lock)->rlock", & __key); return; } } void ceph_caps_finalize(struct ceph_mds_client *mdsc ) { struct ceph_cap *cap ; struct list_head const *__mptr ; int tmp ; { spin_lock(& mdsc->caps_list_lock); goto ldv_28889; ldv_28888: __mptr = (struct list_head const *)mdsc->caps_list.next; cap = (struct ceph_cap *)__mptr + 0xffffffffffffff90UL; list_del(& cap->caps_item); kmem_cache_free(ceph_cap_cachep, (void *)cap); ldv_28889: tmp = list_empty((struct list_head const *)(& mdsc->caps_list)); if (tmp == 0) { goto ldv_28888; } else { } mdsc->caps_total_count = 0; mdsc->caps_avail_count = 0; mdsc->caps_use_count = 0; mdsc->caps_reserve_count = 0; mdsc->caps_min_count = 0; spin_unlock(& mdsc->caps_list_lock); return; } } void ceph_adjust_min_caps(struct ceph_mds_client *mdsc , int delta ) { long tmp ; { spin_lock(& mdsc->caps_list_lock); mdsc->caps_min_count = mdsc->caps_min_count + delta; tmp = ldv__builtin_expect(mdsc->caps_min_count < 0, 0L); if (tmp != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (217), "i" (12UL)); ldv_28895: ; goto ldv_28895; } else { } spin_unlock(& mdsc->caps_list_lock); return; } } int ceph_reserve_caps(struct ceph_mds_client *mdsc , struct ceph_cap_reservation *ctx , int need ) { int i ; struct ceph_cap *cap ; int have ; int alloc ; struct list_head newcaps ; int ret ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; long tmp___1 ; void *tmp___2 ; long tmp___3 ; long tmp___4 ; struct _ddebug descriptor___0 ; char const *tmp___5 ; long tmp___6 ; { alloc = 0; newcaps.next = & newcaps; newcaps.prev = & newcaps; ret = 0; descriptor.modname = "ceph"; descriptor.function = "ceph_reserve_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : reserve caps ctx=%p need=%d\n"; descriptor.lineno = 231U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : reserve caps ctx=%p need=%d\n", 3, (char *)" ", tmp, 231, ctx, need); } else { } spin_lock(& mdsc->caps_list_lock); if (mdsc->caps_avail_count >= need) { have = need; } else { have = mdsc->caps_avail_count; } mdsc->caps_avail_count = mdsc->caps_avail_count - have; mdsc->caps_reserve_count = mdsc->caps_reserve_count + have; tmp___1 = ldv__builtin_expect(mdsc->caps_total_count != (mdsc->caps_use_count + mdsc->caps_reserve_count) + mdsc->caps_avail_count, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (243), "i" (12UL)); ldv_28909: ; goto ldv_28909; } else { } spin_unlock(& mdsc->caps_list_lock); i = have; goto ldv_28912; ldv_28911: tmp___2 = kmem_cache_alloc(ceph_cap_cachep, 80U); cap = (struct ceph_cap *)tmp___2; if ((unsigned long )cap == (unsigned long )((struct ceph_cap *)0)) { ret = -12; goto out_alloc_count; } else { } list_add(& cap->caps_item, & newcaps); alloc = alloc + 1; i = i + 1; ldv_28912: ; if (i < need) { goto ldv_28911; } else { } tmp___3 = ldv__builtin_expect(have + alloc != need, 0L); if (tmp___3 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (255), "i" (12UL)); ldv_28914: ; goto ldv_28914; } else { } spin_lock(& mdsc->caps_list_lock); mdsc->caps_total_count = mdsc->caps_total_count + alloc; mdsc->caps_reserve_count = mdsc->caps_reserve_count + alloc; list_splice((struct list_head const *)(& newcaps), & mdsc->caps_list); tmp___4 = ldv__builtin_expect(mdsc->caps_total_count != (mdsc->caps_use_count + mdsc->caps_reserve_count) + mdsc->caps_avail_count, 0L); if (tmp___4 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (264), "i" (12UL)); ldv_28915: ; goto ldv_28915; } else { } spin_unlock(& mdsc->caps_list_lock); ctx->count = need; descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_reserve_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : reserve caps ctx=%p %d = %d used + %d resv + %d avail\n"; descriptor___0.lineno = 270U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : reserve caps ctx=%p %d = %d used + %d resv + %d avail\n", 3, (char *)" ", tmp___5, 270, ctx, mdsc->caps_total_count, mdsc->caps_use_count, mdsc->caps_reserve_count, mdsc->caps_avail_count); } else { } return (0); out_alloc_count: printk("\fceph: reserve caps ctx=%p ENOMEM need=%d got=%d\n", ctx, need, have); return (ret); } } int ceph_unreserve_caps(struct ceph_mds_client *mdsc , struct ceph_cap_reservation *ctx ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; long tmp___4 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_unreserve_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : unreserve caps ctx=%p count=%d\n"; descriptor.lineno = 283U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : unreserve caps ctx=%p count=%d\n", 3, (char *)" ", tmp, 283, ctx, ctx->count); } else { } if (ctx->count != 0) { spin_lock(& mdsc->caps_list_lock); tmp___1 = ldv__builtin_expect(mdsc->caps_reserve_count < ctx->count, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (286), "i" (12UL)); ldv_28923: ; goto ldv_28923; } else { } mdsc->caps_reserve_count = mdsc->caps_reserve_count - ctx->count; mdsc->caps_avail_count = mdsc->caps_avail_count + ctx->count; ctx->count = 0; descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_unreserve_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : unreserve caps %d = %d used + %d resv + %d avail\n"; descriptor___0.lineno = 292U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : unreserve caps %d = %d used + %d resv + %d avail\n", 3, (char *)" ", tmp___2, 292, mdsc->caps_total_count, mdsc->caps_use_count, mdsc->caps_reserve_count, mdsc->caps_avail_count); } else { } tmp___4 = ldv__builtin_expect(mdsc->caps_total_count != (mdsc->caps_use_count + mdsc->caps_reserve_count) + mdsc->caps_avail_count, 0L); if (tmp___4 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (295), "i" (12UL)); ldv_28925: ; goto ldv_28925; } else { } spin_unlock(& mdsc->caps_list_lock); } else { } return (0); } } static struct ceph_cap *get_cap(struct ceph_mds_client *mdsc , struct ceph_cap_reservation *ctx ) { struct ceph_cap *cap ; void *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; long tmp___2 ; long tmp___3 ; int tmp___4 ; long tmp___5 ; struct list_head const *__mptr ; long tmp___6 ; { cap = 0; if ((unsigned long )ctx == (unsigned long )((struct ceph_cap_reservation *)0)) { tmp = kmem_cache_alloc(ceph_cap_cachep, 80U); cap = (struct ceph_cap *)tmp; if ((unsigned long )cap != (unsigned long )((struct ceph_cap *)0)) { spin_lock(& mdsc->caps_list_lock); mdsc->caps_use_count = mdsc->caps_use_count + 1; mdsc->caps_total_count = mdsc->caps_total_count + 1; spin_unlock(& mdsc->caps_list_lock); } else { } return (cap); } else { } spin_lock(& mdsc->caps_list_lock); descriptor.modname = "ceph"; descriptor.function = "get_cap"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : get_cap ctx=%p (%d) %d = %d used + %d resv + %d avail\n"; descriptor.lineno = 321U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : get_cap ctx=%p (%d) %d = %d used + %d resv + %d avail\n", 3, (char *)" ", tmp___0, 321, ctx, ctx->count, mdsc->caps_total_count, mdsc->caps_use_count, mdsc->caps_reserve_count, mdsc->caps_avail_count); } else { } tmp___2 = ldv__builtin_expect(ctx->count == 0, 0L); if (tmp___2 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (322), "i" (12UL)); ldv_28933: ; goto ldv_28933; } else { } tmp___3 = ldv__builtin_expect(ctx->count > mdsc->caps_reserve_count, 0L); if (tmp___3 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (323), "i" (12UL)); ldv_28934: ; goto ldv_28934; } else { } tmp___4 = list_empty((struct list_head const *)(& mdsc->caps_list)); tmp___5 = ldv__builtin_expect(tmp___4 != 0, 0L); if (tmp___5 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (324), "i" (12UL)); ldv_28935: ; goto ldv_28935; } else { } ctx->count = ctx->count - 1; mdsc->caps_reserve_count = mdsc->caps_reserve_count - 1; mdsc->caps_use_count = mdsc->caps_use_count + 1; __mptr = (struct list_head const *)mdsc->caps_list.next; cap = (struct ceph_cap *)__mptr + 0xffffffffffffff90UL; list_del(& cap->caps_item); tmp___6 = ldv__builtin_expect(mdsc->caps_total_count != (mdsc->caps_use_count + mdsc->caps_reserve_count) + mdsc->caps_avail_count, 0L); if (tmp___6 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (334), "i" (12UL)); ldv_28938: ; goto ldv_28938; } else { } spin_unlock(& mdsc->caps_list_lock); return (cap); } } void ceph_put_cap(struct ceph_mds_client *mdsc , struct ceph_cap *cap ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; long tmp___1 ; { spin_lock(& mdsc->caps_list_lock); descriptor.modname = "ceph"; descriptor.function = "ceph_put_cap"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : put_cap %p %d = %d used + %d resv + %d avail\n"; descriptor.lineno = 344U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : put_cap %p %d = %d used + %d resv + %d avail\n", 3, (char *)" ", tmp, 344, cap, mdsc->caps_total_count, mdsc->caps_use_count, mdsc->caps_reserve_count, mdsc->caps_avail_count); } else { } mdsc->caps_use_count = mdsc->caps_use_count - 1; if (mdsc->caps_avail_count >= mdsc->caps_reserve_count + mdsc->caps_min_count) { mdsc->caps_total_count = mdsc->caps_total_count - 1; kmem_cache_free(ceph_cap_cachep, (void *)cap); } else { mdsc->caps_avail_count = mdsc->caps_avail_count + 1; list_add(& cap->caps_item, & mdsc->caps_list); } tmp___1 = ldv__builtin_expect(mdsc->caps_total_count != (mdsc->caps_use_count + mdsc->caps_reserve_count) + mdsc->caps_avail_count, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (360), "i" (12UL)); ldv_28945: ; goto ldv_28945; } else { } spin_unlock(& mdsc->caps_list_lock); return; } } void ceph_reservation_status(struct ceph_fs_client *fsc , int *total , int *avail , int *used , int *reserved , int *min ) { struct ceph_mds_client *mdsc ; { mdsc = fsc->mdsc; if ((unsigned long )total != (unsigned long )((int *)0)) { *total = mdsc->caps_total_count; } else { } if ((unsigned long )avail != (unsigned long )((int *)0)) { *avail = mdsc->caps_avail_count; } else { } if ((unsigned long )used != (unsigned long )((int *)0)) { *used = mdsc->caps_use_count; } else { } if ((unsigned long )reserved != (unsigned long )((int *)0)) { *reserved = mdsc->caps_reserve_count; } else { } if ((unsigned long )min != (unsigned long )((int *)0)) { *min = mdsc->caps_min_count; } else { } return; } } static struct ceph_cap *__get_cap_for_mds(struct ceph_inode_info *ci , int mds ) { struct ceph_cap *cap ; struct rb_node *n ; struct rb_node const *__mptr ; { n = ci->i_caps.rb_node; goto ldv_28964; ldv_28963: __mptr = (struct rb_node const *)n; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; if (cap->mds > mds) { n = n->rb_left; } else if (cap->mds < mds) { n = n->rb_right; } else { return (cap); } ldv_28964: ; if ((unsigned long )n != (unsigned long )((struct rb_node *)0)) { goto ldv_28963; } else { } return (0); } } struct ceph_cap *ceph_get_cap_for_mds(struct ceph_inode_info *ci , int mds ) { struct ceph_cap *cap ; { spin_lock(& ci->i_ceph_lock); cap = __get_cap_for_mds(ci, mds); spin_unlock(& ci->i_ceph_lock); return (cap); } } static int __ceph_get_cap_mds(struct ceph_inode_info *ci ) { struct ceph_cap *cap ; int mds ; struct rb_node *p ; struct rb_node const *__mptr ; { mds = -1; p = rb_first((struct rb_root const *)(& ci->i_caps)); goto ldv_28981; ldv_28980: __mptr = (struct rb_node const *)p; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; mds = cap->mds; if ((cap->issued & 12800) != 0) { goto ldv_28979; } else { } p = rb_next((struct rb_node const *)p); ldv_28981: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_28980; } else { } ldv_28979: ; return (mds); } } int ceph_get_cap_mds(struct inode *inode ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int mds ; struct ceph_inode_info *tmp___0 ; { tmp = ceph_inode(inode); ci = tmp; spin_lock(& ci->i_ceph_lock); tmp___0 = ceph_inode(inode); mds = __ceph_get_cap_mds(tmp___0); spin_unlock(& ci->i_ceph_lock); return (mds); } } static void __insert_cap_node(struct ceph_inode_info *ci , struct ceph_cap *new ) { struct rb_node **p ; struct rb_node *parent ; struct ceph_cap *cap ; struct rb_node const *__mptr ; { p = & ci->i_caps.rb_node; parent = 0; cap = 0; goto ldv_28998; ldv_28997: parent = *p; __mptr = (struct rb_node const *)parent; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; if (new->mds < cap->mds) { p = & (*p)->rb_left; } else if (new->mds > cap->mds) { p = & (*p)->rb_right; } else { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (463), "i" (12UL)); ldv_28996: ; goto ldv_28996; } ldv_28998: ; if ((unsigned long )*p != (unsigned long )((struct rb_node *)0)) { goto ldv_28997; } else { } rb_link_node(& new->ci_node, parent, p); rb_insert_color(& new->ci_node, & ci->i_caps); return; } } static void __cap_set_timeouts(struct ceph_mds_client *mdsc , struct ceph_inode_info *ci ) { struct ceph_mount_options *ma ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { ma = (mdsc->fsc)->mount_options; ci->i_hold_caps_min = round_jiffies((unsigned long )(ma->caps_wanted_delay_min * 250) + (unsigned long )jiffies); ci->i_hold_caps_max = round_jiffies((unsigned long )(ma->caps_wanted_delay_max * 250) + (unsigned long )jiffies); descriptor.modname = "ceph"; descriptor.function = "__cap_set_timeouts"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __cap_set_timeouts %p min %lu max %lu\n"; descriptor.lineno = 484U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __cap_set_timeouts %p min %lu max %lu\n", 3, (char *)" ", tmp, 484, & ci->vfs_inode, ci->i_hold_caps_min - (unsigned long )jiffies, ci->i_hold_caps_max - (unsigned long )jiffies); } else { } return; } } static void __cap_delay_requeue(struct ceph_mds_client *mdsc , struct ceph_inode_info *ci ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; int tmp___1 ; { __cap_set_timeouts(mdsc, ci); descriptor.modname = "ceph"; descriptor.function = "__cap_delay_requeue"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __cap_delay_requeue %p flags %d at %lu\n"; descriptor.lineno = 500U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __cap_delay_requeue %p flags %d at %lu\n", 3, (char *)" ", tmp, 500, & ci->vfs_inode, ci->i_ceph_flags, ci->i_hold_caps_max); } else { } if (mdsc->stopping == 0) { spin_lock(& mdsc->cap_delay_lock); tmp___1 = list_empty((struct list_head const *)(& ci->i_cap_delay_list)); if (tmp___1 == 0) { if ((ci->i_ceph_flags & 8U) != 0U) { goto no_change; } else { } list_del_init(& ci->i_cap_delay_list); } else { } list_add_tail(& ci->i_cap_delay_list, & mdsc->cap_delay_list); no_change: spin_unlock(& mdsc->cap_delay_lock); } else { } return; } } static void __cap_delay_requeue_front(struct ceph_mds_client *mdsc , struct ceph_inode_info *ci ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; int tmp___1 ; { descriptor.modname = "ceph"; descriptor.function = "__cap_delay_requeue_front"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __cap_delay_requeue_front %p\n"; descriptor.lineno = 522U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __cap_delay_requeue_front %p\n", 3, (char *)" ", tmp, 522, & ci->vfs_inode); } else { } spin_lock(& mdsc->cap_delay_lock); ci->i_ceph_flags = ci->i_ceph_flags | 8U; tmp___1 = list_empty((struct list_head const *)(& ci->i_cap_delay_list)); if (tmp___1 == 0) { list_del_init(& ci->i_cap_delay_list); } else { } list_add(& ci->i_cap_delay_list, & mdsc->cap_delay_list); spin_unlock(& mdsc->cap_delay_lock); return; } } static void __cap_delay_cancel(struct ceph_mds_client *mdsc , struct ceph_inode_info *ci ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; int tmp___1 ; { descriptor.modname = "ceph"; descriptor.function = "__cap_delay_cancel"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __cap_delay_cancel %p\n"; descriptor.lineno = 539U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __cap_delay_cancel %p\n", 3, (char *)" ", tmp, 539, & ci->vfs_inode); } else { } tmp___1 = list_empty((struct list_head const *)(& ci->i_cap_delay_list)); if (tmp___1 != 0) { return; } else { } spin_lock(& mdsc->cap_delay_lock); list_del_init(& ci->i_cap_delay_list); spin_unlock(& mdsc->cap_delay_lock); return; } } static void __check_cap_issue(struct ceph_inode_info *ci , struct ceph_cap *cap , unsigned int issued ) { unsigned int had ; int tmp ; { tmp = __ceph_caps_issued(ci, 0); had = (unsigned int )tmp; if ((issued & 33792U) != 0U && (had & 33792U) == 0U) { ci->i_rdcache_gen = ci->i_rdcache_gen + 1U; } else { } if ((issued & 256U) != 0U && (had & 256U) == 0U) { ci->i_shared_gen = ci->i_shared_gen + 1U; if (((int )ci->vfs_inode.i_mode & 61440) == 16384) { ceph_dir_clear_complete(& ci->vfs_inode); } else { } } else { } return; } } int ceph_add_cap(struct inode *inode , struct ceph_mds_session *session , u64 cap_id , int fmode , unsigned int issued , unsigned int wanted , unsigned int seq , unsigned int mseq , u64 realmino , int flags , struct ceph_cap_reservation *caps_reservation ) { struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___0 ; struct ceph_cap *new_cap ; struct ceph_cap *cap ; int mds ; int actual_wanted ; struct _ddebug descriptor ; char const *tmp___1 ; char const *tmp___2 ; long tmp___3 ; int tmp___4 ; struct ceph_snap_realm *realm ; struct ceph_snap_realm *tmp___5 ; int __ret_warn_on ; long tmp___6 ; struct _ddebug descriptor___0 ; char const *tmp___7 ; char const *tmp___8 ; char const *tmp___9 ; char const *tmp___10 ; long tmp___11 ; struct _ddebug descriptor___1 ; char const *tmp___12 ; char const *tmp___13 ; struct ceph_inode_info *tmp___14 ; struct ceph_inode_info *tmp___15 ; char const *tmp___16 ; long tmp___17 ; { tmp = ceph_inode_to_client(inode); mdsc = tmp->mdsc; tmp___0 = ceph_inode(inode); ci = tmp___0; new_cap = 0; mds = session->s_mds; descriptor.modname = "ceph"; descriptor.function = "ceph_add_cap"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : add_cap %p mds%d cap %llx %s seq %d\n"; descriptor.lineno = 599U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___1 = ceph_cap_string((int )issued); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : add_cap %p mds%d cap %llx %s seq %d\n", 3, (char *)" ", tmp___2, 599, inode, session->s_mds, cap_id, tmp___1, seq); } else { } if (fmode >= 0) { tmp___4 = ceph_caps_for_mode(fmode); wanted = (unsigned int )tmp___4 | wanted; } else { } retry: spin_lock(& ci->i_ceph_lock); cap = __get_cap_for_mds(ci, mds); if ((unsigned long )cap == (unsigned long )((struct ceph_cap *)0)) { if ((unsigned long )new_cap != (unsigned long )((struct ceph_cap *)0)) { cap = new_cap; new_cap = 0; } else { spin_unlock(& ci->i_ceph_lock); new_cap = get_cap(mdsc, caps_reservation); if ((unsigned long )new_cap == (unsigned long )((struct ceph_cap *)0)) { return (-12); } else { } goto retry; } cap->issued = 0; cap->implemented = 0; cap->mds = mds; cap->mds_wanted = 0; cap->ci = ci; __insert_cap_node(ci, cap); if (ci->i_cap_exporting_mds == mds) { ci->i_cap_exporting_issued = 0U; ci->i_cap_exporting_mseq = 0U; ci->i_cap_exporting_mds = -1; } else { } cap->session = session; spin_lock(& session->s_cap_lock); list_add_tail(& cap->session_caps, & session->s_caps); session->s_nr_caps = session->s_nr_caps + 1; spin_unlock(& session->s_cap_lock); } else if ((unsigned long )new_cap != (unsigned long )((struct ceph_cap *)0)) { ceph_put_cap(mdsc, new_cap); } else { } if ((unsigned long )ci->i_snap_realm == (unsigned long )((struct ceph_snap_realm *)0)) { tmp___5 = ceph_lookup_snap_realm(mdsc, realmino); realm = tmp___5; if ((unsigned long )realm != (unsigned long )((struct ceph_snap_realm *)0)) { ceph_get_snap_realm(mdsc, realm); spin_lock(& realm->inodes_with_caps_lock); ci->i_snap_realm = realm; list_add(& ci->i_snap_realm_item, & realm->inodes_with_caps); spin_unlock(& realm->inodes_with_caps_lock); } else { printk("\vceph: ceph_add_cap: couldn\'t find snap realm %llx\n", realmino); __ret_warn_on = (unsigned long )realm == (unsigned long )((struct ceph_snap_realm *)0); tmp___6 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___6 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 663); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } } else { } __check_cap_issue(ci, cap, issued); actual_wanted = __ceph_caps_wanted(ci); if (((unsigned int )(~ actual_wanted) & wanted) != 0U || (((unsigned int )(~ actual_wanted) & issued) & 12968U) != 0U) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_add_cap"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : issued %s, mds wanted %s, actual %s, queueing\n"; descriptor___0.lineno = 679U; descriptor___0.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___7 = ceph_cap_string(actual_wanted); tmp___8 = ceph_cap_string((int )wanted); tmp___9 = ceph_cap_string((int )issued); tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : issued %s, mds wanted %s, actual %s, queueing\n", 3, (char *)" ", tmp___10, 679, tmp___9, tmp___8, tmp___7); } else { } __cap_delay_requeue(mdsc, ci); } else { } if (flags & 1) { ci->i_auth_cap = cap; } else if ((unsigned long )ci->i_auth_cap == (unsigned long )cap) { ci->i_auth_cap = 0; } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_add_cap"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : add_cap inode %p (%llx.%llx) cap %p %s now %s seq %d mds%d\n"; descriptor___1.lineno = 690U; descriptor___1.flags = 0U; tmp___17 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___17 != 0L) { tmp___12 = ceph_cap_string((int )((unsigned int )cap->issued | issued)); tmp___13 = ceph_cap_string((int )issued); tmp___14 = ceph_inode(inode); tmp___15 = ceph_inode(inode); tmp___16 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : add_cap inode %p (%llx.%llx) cap %p %s now %s seq %d mds%d\n", 3, (char *)" ", tmp___16, 690, inode, tmp___15->i_vino.ino, tmp___14->i_vino.snap, cap, tmp___13, tmp___12, seq, mds); } else { } cap->cap_id = cap_id; cap->issued = (int )issued; cap->implemented = (int )((unsigned int )cap->implemented | issued); cap->mds_wanted = (int )((unsigned int )cap->mds_wanted | wanted); cap->seq = seq; cap->issue_seq = seq; cap->mseq = mseq; cap->cap_gen = session->s_cap_gen; if (fmode >= 0) { __ceph_get_fmode(ci, fmode); } else { } spin_unlock(& ci->i_ceph_lock); __wake_up(& ci->i_cap_wq, 3U, 0, 0); return (0); } } static int __cap_is_valid(struct ceph_cap *cap ) { unsigned long ttl ; u32 gen ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; long tmp___1 ; { spin_lock(& (cap->session)->s_gen_ttl_lock); gen = (cap->session)->s_cap_gen; ttl = (cap->session)->s_cap_ttl; spin_unlock(& (cap->session)->s_gen_ttl_lock); if (cap->cap_gen < gen || (long )jiffies - (long )ttl >= 0L) { descriptor.modname = "ceph"; descriptor.function = "__cap_is_valid"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __cap_is_valid %p cap %p issued %s but STALE (gen %u vs %u)\n"; descriptor.lineno = 725U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp = ceph_cap_string(cap->issued); tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __cap_is_valid %p cap %p issued %s but STALE (gen %u vs %u)\n", 3, (char *)" ", tmp___0, 725, & (cap->ci)->vfs_inode, cap, tmp, cap->cap_gen, gen); } else { } return (0); } else { } return (1); } } int __ceph_caps_issued(struct ceph_inode_info *ci , int *implemented ) { int have ; struct ceph_cap *cap ; struct rb_node *p ; struct rb_node const *__mptr ; int tmp ; struct _ddebug descriptor ; char const *tmp___0 ; char const *tmp___1 ; long tmp___2 ; { have = (int )(ci->i_snap_caps | ci->i_cap_exporting_issued); if ((unsigned long )implemented != (unsigned long )((int *)0)) { *implemented = 0; } else { } p = rb_first((struct rb_root const *)(& ci->i_caps)); goto ldv_29085; ldv_29084: __mptr = (struct rb_node const *)p; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; tmp = __cap_is_valid(cap); if (tmp == 0) { goto ldv_29081; } else { } descriptor.modname = "ceph"; descriptor.function = "__ceph_caps_issued"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __ceph_caps_issued %p cap %p issued %s\n"; descriptor.lineno = 750U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___0 = ceph_cap_string(cap->issued); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __ceph_caps_issued %p cap %p issued %s\n", 3, (char *)" ", tmp___1, 750, & ci->vfs_inode, cap, tmp___0); } else { } have = cap->issued | have; if ((unsigned long )implemented != (unsigned long )((int *)0)) { *implemented = *implemented | cap->implemented; } else { } ldv_29081: p = rb_next((struct rb_node const *)p); ldv_29085: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29084; } else { } return (have); } } int __ceph_caps_issued_other(struct ceph_inode_info *ci , struct ceph_cap *ocap ) { int have ; struct ceph_cap *cap ; struct rb_node *p ; struct rb_node const *__mptr ; int tmp ; { have = (int )ci->i_snap_caps; p = rb_first((struct rb_root const *)(& ci->i_caps)); goto ldv_29098; ldv_29097: __mptr = (struct rb_node const *)p; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; if ((unsigned long )cap == (unsigned long )ocap) { goto ldv_29096; } else { } tmp = __cap_is_valid(cap); if (tmp == 0) { goto ldv_29096; } else { } have = cap->issued | have; ldv_29096: p = rb_next((struct rb_node const *)p); ldv_29098: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29097; } else { } return (have); } } static void __touch_cap(struct ceph_cap *cap ) { struct ceph_mds_session *s ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; { s = cap->session; spin_lock(& s->s_cap_lock); if ((unsigned long )s->s_cap_iterator == (unsigned long )((struct ceph_cap *)0)) { descriptor.modname = "ceph"; descriptor.function = "__touch_cap"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __touch_cap %p cap %p mds%d\n"; descriptor.lineno = 789U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __touch_cap %p cap %p mds%d\n", 3, (char *)" ", tmp, 789, & (cap->ci)->vfs_inode, cap, s->s_mds); } else { } list_move_tail(& cap->session_caps, & s->s_caps); } else { descriptor___0.modname = "ceph"; descriptor___0.function = "__touch_cap"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : __touch_cap %p cap %p mds%d NOP, iterating over caps\n"; descriptor___0.lineno = 793U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : __touch_cap %p cap %p mds%d NOP, iterating over caps\n", 3, (char *)" ", tmp___1, 793, & (cap->ci)->vfs_inode, cap, s->s_mds); } else { } } spin_unlock(& s->s_cap_lock); return; } } int __ceph_caps_issued_mask(struct ceph_inode_info *ci , int mask , int touch ) { struct ceph_cap *cap ; struct rb_node *p ; int have ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; char const *tmp___1 ; long tmp___2 ; struct rb_node const *__mptr ; int tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; char const *tmp___5 ; char const *tmp___6 ; long tmp___7 ; struct _ddebug descriptor___1 ; char const *tmp___8 ; char const *tmp___9 ; char const *tmp___10 ; long tmp___11 ; struct rb_node *q ; struct rb_node const *__mptr___0 ; int tmp___12 ; { have = (int )ci->i_snap_caps; if ((have & mask) == mask) { descriptor.modname = "ceph"; descriptor.function = "__ceph_caps_issued_mask"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __ceph_caps_issued_mask %p snap issued %s (mask %s)\n"; descriptor.lineno = 813U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp = ceph_cap_string(mask); tmp___0 = ceph_cap_string(have); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __ceph_caps_issued_mask %p snap issued %s (mask %s)\n", 3, (char *)" ", tmp___1, 813, & ci->vfs_inode, tmp___0, tmp); } else { } return (1); } else { } p = rb_first((struct rb_root const *)(& ci->i_caps)); goto ldv_29130; ldv_29129: __mptr = (struct rb_node const *)p; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; tmp___3 = __cap_is_valid(cap); if (tmp___3 == 0) { goto ldv_29119; } else { } if ((cap->issued & mask) == mask) { descriptor___0.modname = "ceph"; descriptor___0.function = "__ceph_caps_issued_mask"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : __ceph_caps_issued_mask %p cap %p issued %s (mask %s)\n"; descriptor___0.lineno = 825U; descriptor___0.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___4 = ceph_cap_string(mask); tmp___5 = ceph_cap_string(cap->issued); tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : __ceph_caps_issued_mask %p cap %p issued %s (mask %s)\n", 3, (char *)" ", tmp___6, 825, & ci->vfs_inode, cap, tmp___5, tmp___4); } else { } if (touch != 0) { __touch_cap(cap); } else { } return (1); } else { } have = cap->issued | have; if ((have & mask) == mask) { descriptor___1.modname = "ceph"; descriptor___1.function = "__ceph_caps_issued_mask"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : __ceph_caps_issued_mask %p combo issued %s (mask %s)\n"; descriptor___1.lineno = 837U; descriptor___1.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___8 = ceph_cap_string(mask); tmp___9 = ceph_cap_string(cap->issued); tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : __ceph_caps_issued_mask %p combo issued %s (mask %s)\n", 3, (char *)" ", tmp___10, 837, & ci->vfs_inode, tmp___9, tmp___8); } else { } if (touch != 0) { __touch_cap(cap); q = rb_first((struct rb_root const *)(& ci->i_caps)); goto ldv_29127; ldv_29126: __mptr___0 = (struct rb_node const *)q; cap = (struct ceph_cap *)__mptr___0 + 0xfffffffffffffff8UL; tmp___12 = __cap_is_valid(cap); if (tmp___12 == 0) { goto ldv_29125; } else { } __touch_cap(cap); ldv_29125: q = rb_next((struct rb_node const *)q); ldv_29127: ; if ((unsigned long )q != (unsigned long )p) { goto ldv_29126; } else { } } else { } return (1); } else { } ldv_29119: p = rb_next((struct rb_node const *)p); ldv_29130: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29129; } else { } return (0); } } int ceph_caps_revoking(struct ceph_inode_info *ci , int mask ) { struct inode *inode ; struct ceph_cap *cap ; struct rb_node *p ; int ret ; struct rb_node const *__mptr ; int tmp ; struct _ddebug descriptor ; char const *tmp___0 ; char const *tmp___1 ; long tmp___2 ; { inode = & ci->vfs_inode; ret = 0; spin_lock(& ci->i_ceph_lock); p = rb_first((struct rb_root const *)(& ci->i_caps)); goto ldv_29144; ldv_29143: __mptr = (struct rb_node const *)p; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; tmp = __cap_is_valid(cap); if (tmp != 0 && ((cap->implemented & ~ cap->issued) & mask) != 0) { ret = 1; goto ldv_29142; } else { } p = rb_next((struct rb_node const *)p); ldv_29144: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29143; } else { } ldv_29142: spin_unlock(& ci->i_ceph_lock); descriptor.modname = "ceph"; descriptor.function = "ceph_caps_revoking"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_caps_revoking %p %s = %d\n"; descriptor.lineno = 880U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___0 = ceph_cap_string(mask); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_caps_revoking %p %s = %d\n", 3, (char *)" ", tmp___1, 880, inode, tmp___0, ret); } else { } return (ret); } } int __ceph_caps_used(struct ceph_inode_info *ci ) { int used ; { used = 0; if (ci->i_pin_ref != 0) { used = used | 1; } else { } if (ci->i_rd_ref != 0) { used = used | 2048; } else { } if (ci->i_rdcache_ref != 0 || ci->vfs_inode.i_data.nrpages != 0UL) { used = used | 1024; } else { } if (ci->i_wr_ref != 0) { used = used | 4096; } else { } if (ci->i_wb_ref != 0 || ci->i_wrbuffer_ref != 0) { used = used | 8192; } else { } return (used); } } int __ceph_caps_file_wanted(struct ceph_inode_info *ci ) { int want ; int mode ; int tmp ; { want = 0; mode = 0; goto ldv_29157; ldv_29156: ; if (ci->i_nr_by_mode[mode] != 0) { tmp = ceph_caps_for_mode(mode); want = tmp | want; } else { } mode = mode + 1; ldv_29157: ; if (mode <= 7) { goto ldv_29156; } else { } return (want); } } int __ceph_caps_mds_wanted(struct ceph_inode_info *ci ) { struct ceph_cap *cap ; struct rb_node *p ; int mds_wanted ; struct rb_node const *__mptr ; int tmp ; { mds_wanted = 0; p = rb_first((struct rb_root const *)(& ci->i_caps)); goto ldv_29169; ldv_29168: __mptr = (struct rb_node const *)p; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; tmp = __cap_is_valid(cap); if (tmp == 0) { goto ldv_29167; } else { } mds_wanted = cap->mds_wanted | mds_wanted; ldv_29167: p = rb_next((struct rb_node const *)p); ldv_29169: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29168; } else { } return (mds_wanted); } } static int __ceph_is_any_caps(struct ceph_inode_info *ci ) { { return ((unsigned long )ci->i_caps.rb_node != (unsigned long )((struct rb_node *)0) || ci->i_cap_exporting_mds >= 0); } } void __ceph_remove_cap(struct ceph_cap *cap ) { struct ceph_mds_session *session ; struct ceph_inode_info *ci ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; int removed ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; struct ceph_snap_realm *realm ; int tmp___4 ; bool tmp___5 ; int tmp___6 ; { session = cap->session; ci = cap->ci; tmp = ceph_sb_to_client(ci->vfs_inode.i_sb); mdsc = tmp->mdsc; removed = 0; descriptor.modname = "ceph"; descriptor.function = "__ceph_remove_cap"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __ceph_remove_cap %p from %p\n"; descriptor.lineno = 953U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __ceph_remove_cap %p from %p\n", 3, (char *)" ", tmp___0, 953, cap, & ci->vfs_inode); } else { } spin_lock(& session->s_cap_lock); if ((unsigned long )session->s_cap_iterator == (unsigned long )cap) { descriptor___0.modname = "ceph"; descriptor___0.function = "__ceph_remove_cap"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : __ceph_remove_cap delaying %p removal from session %p\n"; descriptor___0.lineno = 960U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : __ceph_remove_cap delaying %p removal from session %p\n", 3, (char *)" ", tmp___2, 960, cap, cap->session); } else { } } else { list_del_init(& cap->session_caps); session->s_nr_caps = session->s_nr_caps - 1; cap->session = 0; removed = 1; } cap->ci = 0; spin_unlock(& session->s_cap_lock); rb_erase(& cap->ci_node, & ci->i_caps); if ((unsigned long )ci->i_auth_cap == (unsigned long )cap) { ci->i_auth_cap = 0; } else { } if (removed != 0) { ceph_put_cap(mdsc, cap); } else { } tmp___4 = __ceph_is_any_caps(ci); if (tmp___4 == 0 && (unsigned long )ci->i_snap_realm != (unsigned long )((struct ceph_snap_realm *)0)) { realm = ci->i_snap_realm; spin_lock(& realm->inodes_with_caps_lock); list_del_init(& ci->i_snap_realm_item); ci->i_snap_realm_counter = ci->i_snap_realm_counter + 1; ci->i_snap_realm = 0; spin_unlock(& realm->inodes_with_caps_lock); ceph_put_snap_realm(mdsc, realm); } else { } tmp___5 = __ceph_is_any_real_caps(ci); if (tmp___5) { tmp___6 = 0; } else { tmp___6 = 1; } if (tmp___6) { __cap_delay_cancel(mdsc, ci); } else { } return; } } static int send_cap_msg(struct ceph_mds_session *session , u64 ino , u64 cid , int op , int caps , int wanted , int dirty , u32 seq , u64 flush_tid , u32 issue_seq , u32 mseq , u64 size , u64 max_size , struct timespec *mtime , struct timespec *atime , u64 time_warp_seq , uid_t uid , gid_t gid , umode_t mode , u64 xattr_version , struct ceph_buffer *xattrs_buf , u64 follows ) { struct ceph_mds_caps *fc ; struct ceph_msg *msg ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; char const *tmp___1 ; char const *tmp___2 ; char const *tmp___3 ; long tmp___4 ; { descriptor.modname = "ceph"; descriptor.function = "send_cap_msg"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : send_cap_msg %s %llx %llx caps %s wanted %s dirty %s seq %u/%u mseq %u follows %lld size %llu/%llu xattr_ver %llu xattr_len %d\n"; descriptor.lineno = 1018U; descriptor.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___4 != 0L) { tmp = ceph_cap_string(dirty); tmp___0 = ceph_cap_string(wanted); tmp___1 = ceph_cap_string(caps); tmp___2 = ceph_cap_op_name(op); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : send_cap_msg %s %llx %llx caps %s wanted %s dirty %s seq %u/%u mseq %u follows %lld size %llu/%llu xattr_ver %llu xattr_len %d\n", 3, (char *)" ", tmp___3, 1018, tmp___2, cid, ino, tmp___1, tmp___0, tmp, seq, issue_seq, mseq, follows, size, max_size, xattr_version, (unsigned long )xattrs_buf != (unsigned long )((struct ceph_buffer *)0) ? (int )xattrs_buf->vec.iov_len : 0); } else { } msg = ceph_msg_new(784, 176, 80U, 0); if ((unsigned long )msg == (unsigned long )((struct ceph_msg *)0)) { return (-12); } else { } msg->hdr.tid = flush_tid; fc = (struct ceph_mds_caps *)msg->front.iov_base; memset((void *)fc, 0, 176UL); fc->cap_id = cid; fc->op = (unsigned int )op; fc->seq = seq; fc->issue_seq = issue_seq; fc->migrate_seq = mseq; fc->caps = (unsigned int )caps; fc->wanted = (unsigned int )wanted; fc->dirty = (unsigned int )dirty; fc->ino = ino; fc->snap_follows = follows; fc->size = size; fc->max_size = max_size; if ((unsigned long )mtime != (unsigned long )((struct timespec *)0)) { ceph_encode_timespec(& fc->mtime, (struct timespec const *)mtime); } else { } if ((unsigned long )atime != (unsigned long )((struct timespec *)0)) { ceph_encode_timespec(& fc->atime, (struct timespec const *)atime); } else { } fc->time_warp_seq = (unsigned int )time_warp_seq; fc->uid = uid; fc->gid = gid; fc->mode = (unsigned int )mode; fc->xattr_version = xattr_version; if ((unsigned long )xattrs_buf != (unsigned long )((struct ceph_buffer *)0)) { msg->middle = ceph_buffer_get(xattrs_buf); fc->xattr_len = (unsigned int )xattrs_buf->vec.iov_len; msg->hdr.middle_len = (unsigned int )xattrs_buf->vec.iov_len; } else { } ceph_con_send(& session->s_con, msg); return (0); } } static void __queue_cap_release(struct ceph_mds_session *session , u64 ino , u64 cap_id , u32 migrate_seq , u32 issue_seq ) { struct ceph_msg *msg ; struct ceph_mds_cap_release *head ; struct ceph_mds_cap_item *item ; long tmp ; struct list_head const *__mptr ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; { spin_lock(& session->s_cap_lock); tmp = ldv__builtin_expect(session->s_num_cap_releases == 0, 0L); if (tmp != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (1072), "i" (12UL)); ldv_29223: ; goto ldv_29223; } else { } __mptr = (struct list_head const *)session->s_cap_releases.next; msg = (struct ceph_msg *)__mptr + 0xffffffffffffff80UL; descriptor.modname = "ceph"; descriptor.function = "__queue_cap_release"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : adding %llx release to mds%d msg %p (%d left)\n"; descriptor.lineno = 1077U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : adding %llx release to mds%d msg %p (%d left)\n", 3, (char *)" ", tmp___0, 1077, ino, session->s_mds, msg, session->s_num_cap_releases); } else { } tmp___2 = ldv__builtin_expect(msg->front.iov_len + 24UL > 4096UL, 0L); if (tmp___2 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (1079), "i" (12UL)); ldv_29228: ; goto ldv_29228; } else { } head = (struct ceph_mds_cap_release *)msg->front.iov_base; le32_add_cpu(& head->num, 1U); item = (struct ceph_mds_cap_item *)(msg->front.iov_base + msg->front.iov_len); item->ino = ino; item->cap_id = cap_id; item->migrate_seq = migrate_seq; item->seq = issue_seq; session->s_num_cap_releases = session->s_num_cap_releases - 1; msg->front.iov_len = msg->front.iov_len + 24UL; if (head->num == 170U) { descriptor___0.modname = "ceph"; descriptor___0.function = "__queue_cap_release"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : release msg %p full\n"; descriptor___0.lineno = 1092U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : release msg %p full\n", 3, (char *)" ", tmp___3, 1092, msg); } else { } list_move_tail(& msg->list_head, & session->s_cap_releases_done); } else { descriptor___1.modname = "ceph"; descriptor___1.function = "__queue_cap_release"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : release msg %p at %d/%d (%d)\n"; descriptor___1.lineno = 1098U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : release msg %p at %d/%d (%d)\n", 3, (char *)" ", tmp___5, 1098, msg, (int )head->num, 170, (int )msg->front.iov_len); } else { } } spin_unlock(& session->s_cap_lock); return; } } void ceph_queue_caps_release(struct inode *inode ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct rb_node *p ; struct ceph_cap *cap ; struct rb_node const *__mptr ; struct ceph_mds_session *session ; u64 tmp___0 ; { tmp = ceph_inode(inode); ci = tmp; p = rb_first((struct rb_root const *)(& ci->i_caps)); goto ldv_29241; ldv_29240: __mptr = (struct rb_node const *)p; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; session = cap->session; tmp___0 = ceph_ino(inode); __queue_cap_release(session, tmp___0, cap->cap_id, cap->mseq, cap->issue_seq); p = rb_next((struct rb_node const *)p); __ceph_remove_cap(cap); ldv_29241: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29240; } else { } return; } } static int __send_cap(struct ceph_mds_client *mdsc , struct ceph_cap *cap , int op , int used , int want , int retain , int flushing , unsigned int *pflush_tid ) { struct ceph_inode_info *ci ; struct inode *inode ; u64 cap_id ; int held ; int revoking ; int dropping ; int keep ; u64 seq ; u64 issue_seq ; u64 mseq ; u64 time_warp_seq ; u64 follows ; u64 size ; u64 max_size ; struct timespec mtime ; struct timespec atime ; int wake ; umode_t mode ; uid_t uid ; gid_t gid ; struct ceph_mds_session *session ; u64 xattr_version ; struct ceph_buffer *xattr_blob ; int delayed ; u64 flush_tid ; int i ; int ret ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; char const *tmp___1 ; char const *tmp___2 ; long tmp___3 ; long tmp___4 ; struct _ddebug descriptor___0 ; char const *tmp___5 ; char const *tmp___6 ; char const *tmp___7 ; char const *tmp___8 ; char const *tmp___9 ; long tmp___10 ; struct _ddebug descriptor___1 ; char const *tmp___11 ; long tmp___12 ; struct ceph_vino tmp___13 ; struct _ddebug descriptor___2 ; char const *tmp___14 ; long tmp___15 ; { ci = cap->ci; inode = & ci->vfs_inode; cap_id = cap->cap_id; wake = 0; xattr_version = 0ULL; xattr_blob = 0; delayed = 0; flush_tid = 0ULL; held = cap->issued | cap->implemented; revoking = cap->implemented & ~ cap->issued; retain = ~ revoking & retain; dropping = cap->issued & ~ retain; descriptor.modname = "ceph"; descriptor.function = "__send_cap"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __send_cap %p cap %p session %p %s -> %s (revoking %s)\n"; descriptor.lineno = 1173U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp = ceph_cap_string(revoking); tmp___0 = ceph_cap_string(held & retain); tmp___1 = ceph_cap_string(held); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __send_cap %p cap %p session %p %s -> %s (revoking %s)\n", 3, (char *)" ", tmp___2, 1173, inode, cap, cap->session, tmp___1, tmp___0, tmp); } else { } tmp___4 = ldv__builtin_expect((retain & 1) == 0, 0L); if (tmp___4 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (1174), "i" (12UL)); ldv_29282: ; goto ldv_29282; } else { } session = cap->session; if ((ci->i_ceph_flags & 4U) == 0U && (long )jiffies - (long )ci->i_hold_caps_min < 0L) { descriptor___0.modname = "ceph"; descriptor___0.function = "__send_cap"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : delaying issued %s -> %s, wanted %s -> %s on send\n"; descriptor___0.lineno = 1185U; descriptor___0.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___5 = ceph_cap_string(want); tmp___6 = ceph_cap_string(cap->mds_wanted); tmp___7 = ceph_cap_string(cap->issued & retain); tmp___8 = ceph_cap_string(cap->issued); tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : delaying issued %s -> %s, wanted %s -> %s on send\n", 3, (char *)" ", tmp___9, 1185, tmp___8, tmp___7, tmp___6, tmp___5); } else { } want = cap->mds_wanted | want; retain = cap->issued | retain; delayed = 1; } else { } ci->i_ceph_flags = ci->i_ceph_flags & 4294967283U; cap->issued = cap->issued & retain; if ((cap->implemented & ~ cap->issued) != 0) { wake = 1; } else { } cap->implemented = cap->implemented & (cap->issued | used); cap->mds_wanted = want; if (flushing != 0) { ci->i_cap_flush_last_tid = (u16 )((int )ci->i_cap_flush_last_tid + 1); flush_tid = (u64 )ci->i_cap_flush_last_tid; if ((unsigned long )pflush_tid != (unsigned long )((unsigned int *)0)) { *pflush_tid = (unsigned int )flush_tid; } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "__send_cap"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : cap_flush_tid %d\n"; descriptor___1.lineno = 1216U; descriptor___1.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : cap_flush_tid %d\n", 3, (char *)" ", tmp___11, 1216, (int )flush_tid); } else { } i = 0; goto ldv_29292; ldv_29291: ; if ((flushing >> i) & 1) { ci->i_cap_flush_tid[i] = (u16 )flush_tid; } else { } i = i + 1; ldv_29292: ; if (i <= 21) { goto ldv_29291; } else { } follows = (ci->i_head_snapc)->seq; } else { follows = 0ULL; } keep = cap->implemented; seq = (u64 )cap->seq; issue_seq = (u64 )cap->issue_seq; mseq = (u64 )cap->mseq; size = (u64 )inode->i_size; ci->i_reported_size = size; max_size = ci->i_wanted_max_size; ci->i_requested_max_size = max_size; mtime = inode->i_mtime; atime = inode->i_atime; time_warp_seq = (u64 )ci->i_time_warp_seq; uid = inode->i_uid; gid = inode->i_gid; mode = inode->i_mode; if ((flushing & 128) != 0) { __ceph_build_xattrs_blob(ci); xattr_blob = ci->i_xattrs.blob; xattr_version = ci->i_xattrs.version; } else { } spin_unlock(& ci->i_ceph_lock); tmp___13 = ceph_vino(inode); ret = send_cap_msg(session, tmp___13.ino, cap_id, op, keep, want, flushing, (u32 )seq, flush_tid, (u32 )issue_seq, (u32 )mseq, size, max_size, & mtime, & atime, time_warp_seq, uid, gid, (int )mode, xattr_version, xattr_blob, follows); if (ret < 0) { descriptor___2.modname = "ceph"; descriptor___2.function = "__send_cap"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : error sending cap msg, must requeue %p\n"; descriptor___2.lineno = 1255U; descriptor___2.flags = 0U; tmp___15 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___15 != 0L) { tmp___14 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : error sending cap msg, must requeue %p\n", 3, (char *)" ", tmp___14, 1255, inode); } else { } delayed = 1; } else { } if (wake != 0) { __wake_up(& ci->i_cap_wq, 3U, 0, 0); } else { } return (delayed); } } void __ceph_flush_snaps(struct ceph_inode_info *ci , struct ceph_mds_session **psession , int again ) { struct inode *inode ; int mds ; struct ceph_cap_snap *capsnap ; u32 mseq ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; struct ceph_mds_session *session ; u64 next_follows ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct list_head const *__mptr ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; int tmp___7 ; struct _ddebug descriptor___2 ; char const *tmp___8 ; long tmp___9 ; struct _ddebug descriptor___3 ; char const *tmp___10 ; long tmp___11 ; int tmp___12 ; struct _ddebug descriptor___4 ; char const *tmp___13 ; long tmp___14 ; struct ceph_vino tmp___15 ; struct list_head const *__mptr___0 ; { inode = & ci->vfs_inode; tmp = ceph_inode_to_client(inode); mdsc = tmp->mdsc; session = 0; next_follows = 0ULL; if ((unsigned long )psession != (unsigned long )((struct ceph_mds_session **)0)) { session = *psession; } else { } descriptor.modname = "ceph"; descriptor.function = "__ceph_flush_snaps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __flush_snaps %p\n"; descriptor.lineno = 1297U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __flush_snaps %p\n", 3, (char *)" ", tmp___0, 1297, inode); } else { } retry: __mptr = (struct list_head const *)ci->i_cap_snaps.next; capsnap = (struct ceph_cap_snap *)__mptr + 0xfffffffffffffff0UL; goto ldv_29324; ldv_29323: ; if (capsnap->follows < next_follows) { goto ldv_29314; } else { } if (capsnap->dirty_pages != 0 || capsnap->writing != 0) { goto ldv_29315; } else { } tmp___2 = ldv__builtin_expect(capsnap->dirty == 0, 0L); if (tmp___2 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (1314), "i" (12UL)); ldv_29316: ; goto ldv_29316; } else { } if ((unsigned long )ci->i_auth_cap == (unsigned long )((struct ceph_cap *)0)) { descriptor___0.modname = "ceph"; descriptor___0.function = "__ceph_flush_snaps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : no auth cap (migrating?), doing nothing\n"; descriptor___0.lineno = 1318U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : no auth cap (migrating?), doing nothing\n", 3, (char *)" ", tmp___3, 1318); } else { } goto out; } else { } if (again == 0) { tmp___7 = list_empty((struct list_head const *)(& capsnap->flushing_item)); if (tmp___7 == 0) { descriptor___1.modname = "ceph"; descriptor___1.function = "__ceph_flush_snaps"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : already flushed %p, skipping\n"; descriptor___1.lineno = 1324U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : already flushed %p, skipping\n", 3, (char *)" ", tmp___5, 1324, capsnap); } else { } goto ldv_29314; } else { } } else { } mds = ((ci->i_auth_cap)->session)->s_mds; mseq = (ci->i_auth_cap)->mseq; if ((unsigned long )session != (unsigned long )((struct ceph_mds_session *)0) && session->s_mds != mds) { descriptor___2.modname = "ceph"; descriptor___2.function = "__ceph_flush_snaps"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : oops, wrong session %p mutex\n"; descriptor___2.lineno = 1332U; descriptor___2.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : oops, wrong session %p mutex\n", 3, (char *)" ", tmp___8, 1332, session); } else { } ldv_mutex_unlock_107(& session->s_mutex); ceph_put_mds_session(session); session = 0; } else { } if ((unsigned long )session == (unsigned long )((struct ceph_mds_session *)0)) { spin_unlock(& ci->i_ceph_lock); ldv_mutex_lock_108(& mdsc->mutex); session = __ceph_lookup_mds_session(mdsc, mds); ldv_mutex_unlock_109(& mdsc->mutex); if ((unsigned long )session != (unsigned long )((struct ceph_mds_session *)0)) { descriptor___3.modname = "ceph"; descriptor___3.function = "__ceph_flush_snaps"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : inverting session/ino locks on %p\n"; descriptor___3.lineno = 1344U; descriptor___3.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : inverting session/ino locks on %p\n", 3, (char *)" ", tmp___10, 1344, session); } else { } ldv_mutex_lock_110(& session->s_mutex); } else { } spin_lock(& ci->i_ceph_lock); goto retry; } else { } ci->i_cap_flush_last_tid = (u16 )((int )ci->i_cap_flush_last_tid + 1); capsnap->flush_tid = (u64 )ci->i_cap_flush_last_tid; atomic_inc(& capsnap->nref); tmp___12 = list_empty((struct list_head const *)(& capsnap->flushing_item)); if (tmp___12 == 0) { list_del_init(& capsnap->flushing_item); } else { } list_add_tail(& capsnap->flushing_item, & session->s_cap_snaps_flushing); spin_unlock(& ci->i_ceph_lock); descriptor___4.modname = "ceph"; descriptor___4.function = "__ceph_flush_snaps"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : flush_snaps %p cap_snap %p follows %lld tid %llu\n"; descriptor___4.lineno = 1365U; descriptor___4.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : flush_snaps %p cap_snap %p follows %lld tid %llu\n", 3, (char *)" ", tmp___13, 1365, inode, capsnap, capsnap->follows, capsnap->flush_tid); } else { } tmp___15 = ceph_vino(inode); send_cap_msg(session, tmp___15.ino, 0ULL, 9, capsnap->issued, 0, capsnap->dirty, 0U, capsnap->flush_tid, 0U, mseq, capsnap->size, 0ULL, & capsnap->mtime, & capsnap->atime, capsnap->time_warp_seq, capsnap->uid, capsnap->gid, (int )capsnap->mode, capsnap->xattr_version, capsnap->xattr_blob, capsnap->follows); next_follows = capsnap->follows + 1ULL; ceph_put_cap_snap(capsnap); spin_lock(& ci->i_ceph_lock); goto retry; ldv_29314: __mptr___0 = (struct list_head const *)capsnap->ci_item.next; capsnap = (struct ceph_cap_snap *)__mptr___0 + 0xfffffffffffffff0UL; ldv_29324: ; if ((unsigned long )(& capsnap->ci_item) != (unsigned long )(& ci->i_cap_snaps)) { goto ldv_29323; } else { } ldv_29315: spin_lock(& mdsc->snap_flush_lock); list_del_init(& ci->i_snap_flush_item); spin_unlock(& mdsc->snap_flush_lock); out: ; if ((unsigned long )psession != (unsigned long )((struct ceph_mds_session **)0)) { *psession = session; } else if ((unsigned long )session != (unsigned long )((struct ceph_mds_session *)0)) { ldv_mutex_unlock_111(& session->s_mutex); ceph_put_mds_session(session); } else { } return; } } static void ceph_flush_snaps(struct ceph_inode_info *ci ) { { spin_lock(& ci->i_ceph_lock); __ceph_flush_snaps(ci, 0, 0); spin_unlock(& ci->i_ceph_lock); return; } } int __ceph_mark_dirty_caps(struct ceph_inode_info *ci , int mask ) { struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; struct inode *inode ; int was ; int dirty ; struct _ddebug descriptor ; char const *tmp___0 ; char const *tmp___1 ; char const *tmp___2 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___0 ; char const *tmp___5 ; long tmp___6 ; int tmp___7 ; long tmp___8 ; int tmp___9 ; long tmp___10 ; { tmp = ceph_sb_to_client(ci->vfs_inode.i_sb); mdsc = tmp->mdsc; inode = & ci->vfs_inode; was = (int )ci->i_dirty_caps; dirty = 0; descriptor.modname = "ceph"; descriptor.function = "__ceph_mark_dirty_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __mark_dirty_caps %p %s dirty %s -> %s\n"; descriptor.lineno = 1419U; descriptor.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___0 = ceph_cap_string(was | mask); tmp___1 = ceph_cap_string(was); tmp___2 = ceph_cap_string(mask); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __mark_dirty_caps %p %s dirty %s -> %s\n", 3, (char *)" ", tmp___3, 1419, & ci->vfs_inode, tmp___2, tmp___1, tmp___0); } else { } ci->i_dirty_caps = ci->i_dirty_caps | (unsigned int )mask; if (was == 0) { if ((unsigned long )ci->i_head_snapc == (unsigned long )((struct ceph_snap_context *)0)) { ci->i_head_snapc = ceph_get_snap_context((ci->i_snap_realm)->cached_context); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "__ceph_mark_dirty_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : inode %p now dirty snapc %p auth cap %p\n"; descriptor___0.lineno = 1426U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : inode %p now dirty snapc %p auth cap %p\n", 3, (char *)" ", tmp___5, 1426, & ci->vfs_inode, ci->i_head_snapc, ci->i_auth_cap); } else { } tmp___7 = list_empty((struct list_head const *)(& ci->i_dirty_item)); tmp___8 = ldv__builtin_expect(tmp___7 == 0, 0L); if (tmp___8 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (1427), "i" (12UL)); ldv_29339: ; goto ldv_29339; } else { } spin_lock(& mdsc->cap_dirty_lock); if ((unsigned long )ci->i_auth_cap != (unsigned long )((struct ceph_cap *)0)) { list_add(& ci->i_dirty_item, & mdsc->cap_dirty); } else { list_add(& ci->i_dirty_item, & mdsc->cap_dirty_migrating); } spin_unlock(& mdsc->cap_dirty_lock); if (ci->i_flushing_caps == 0U) { ihold(inode); dirty = dirty | 1; } else { } } else { } tmp___9 = list_empty((struct list_head const *)(& ci->i_dirty_item)); tmp___10 = ldv__builtin_expect(tmp___9 != 0, 0L); if (tmp___10 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (1440), "i" (12UL)); ldv_29340: ; goto ldv_29340; } else { } if (((ci->i_flushing_caps | (unsigned int )was) & 8192U) != 0U && (mask & 8192) != 0) { dirty = dirty | 2; } else { } __cap_delay_requeue(mdsc, ci); return (dirty); } } static int __mark_caps_flushing(struct inode *inode , struct ceph_mds_session *session ) { struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___0 ; int flushing ; long tmp___1 ; int tmp___2 ; long tmp___3 ; struct _ddebug descriptor ; char const *tmp___4 ; char const *tmp___5 ; char const *tmp___6 ; char const *tmp___7 ; long tmp___8 ; struct _ddebug descriptor___0 ; char const *tmp___9 ; long tmp___10 ; struct _ddebug descriptor___1 ; char const *tmp___11 ; long tmp___12 ; struct _ddebug descriptor___2 ; char const *tmp___13 ; long tmp___14 ; int tmp___15 ; { tmp = ceph_sb_to_client(inode->i_sb); mdsc = tmp->mdsc; tmp___0 = ceph_inode(inode); ci = tmp___0; tmp___1 = ldv__builtin_expect(ci->i_dirty_caps == 0U, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (1461), "i" (12UL)); ldv_29348: ; goto ldv_29348; } else { } tmp___2 = list_empty((struct list_head const *)(& ci->i_dirty_item)); tmp___3 = ldv__builtin_expect(tmp___2 != 0, 0L); if (tmp___3 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (1462), "i" (12UL)); ldv_29349: ; goto ldv_29349; } else { } flushing = (int )ci->i_dirty_caps; descriptor.modname = "ceph"; descriptor.function = "__mark_caps_flushing"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __mark_caps_flushing flushing %s, flushing_caps %s -> %s\n"; descriptor.lineno = 1468U; descriptor.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___4 = ceph_cap_string((int )(ci->i_flushing_caps | (unsigned int )flushing)); tmp___5 = ceph_cap_string((int )ci->i_flushing_caps); tmp___6 = ceph_cap_string(flushing); tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __mark_caps_flushing flushing %s, flushing_caps %s -> %s\n", 3, (char *)" ", tmp___7, 1468, tmp___6, tmp___5, tmp___4); } else { } ci->i_flushing_caps = ci->i_flushing_caps | (unsigned int )flushing; ci->i_dirty_caps = 0U; descriptor___0.modname = "ceph"; descriptor___0.function = "__mark_caps_flushing"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : inode %p now !dirty\n"; descriptor___0.lineno = 1471U; descriptor___0.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : inode %p now !dirty\n", 3, (char *)" ", tmp___9, 1471, inode); } else { } spin_lock(& mdsc->cap_dirty_lock); list_del_init(& ci->i_dirty_item); mdsc->cap_flush_seq = mdsc->cap_flush_seq + 1ULL; ci->i_cap_flush_seq = mdsc->cap_flush_seq; tmp___15 = list_empty((struct list_head const *)(& ci->i_flushing_item)); if (tmp___15 != 0) { list_add_tail(& ci->i_flushing_item, & session->s_cap_flushing); mdsc->num_cap_flushing = mdsc->num_cap_flushing + 1; descriptor___1.modname = "ceph"; descriptor___1.function = "__mark_caps_flushing"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : inode %p now flushing seq %lld\n"; descriptor___1.lineno = 1481U; descriptor___1.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : inode %p now flushing seq %lld\n", 3, (char *)" ", tmp___11, 1481, inode, ci->i_cap_flush_seq); } else { } } else { list_move_tail(& ci->i_flushing_item, & session->s_cap_flushing); descriptor___2.modname = "ceph"; descriptor___2.function = "__mark_caps_flushing"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : inode %p now flushing (more) seq %lld\n"; descriptor___2.lineno = 1485U; descriptor___2.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : inode %p now flushing (more) seq %lld\n", 3, (char *)" ", tmp___13, 1485, inode, ci->i_cap_flush_seq); } else { } } spin_unlock(& mdsc->cap_dirty_lock); return (flushing); } } static int try_nonblocking_invalidate(struct inode *inode ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; u32 invalidating_gen ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; { tmp = ceph_inode(inode); ci = tmp; invalidating_gen = ci->i_rdcache_gen; spin_unlock(& ci->i_ceph_lock); invalidate_mapping_pages(& inode->i_data, 0UL, 0xffffffffffffffffUL); spin_lock(& ci->i_ceph_lock); if (inode->i_data.nrpages == 0UL && ci->i_rdcache_gen == invalidating_gen) { descriptor.modname = "ceph"; descriptor.function = "try_nonblocking_invalidate"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : try_nonblocking_invalidate %p success\n"; descriptor.lineno = 1507U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : try_nonblocking_invalidate %p success\n", 3, (char *)" ", tmp___0, 1507, inode); } else { } ci->i_rdcache_revoking = ci->i_rdcache_gen - 1U; return (0); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "try_nonblocking_invalidate"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : try_nonblocking_invalidate %p failed\n"; descriptor___0.lineno = 1512U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : try_nonblocking_invalidate %p failed\n", 3, (char *)" ", tmp___2, 1512, inode); } else { } return (-1); } } void ceph_check_caps(struct ceph_inode_info *ci , int flags , struct ceph_mds_session *session ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct inode *inode ; struct ceph_cap *cap ; int file_wanted ; int used ; int took_snap_rwsem ; int issued ; int implemented ; int want ; int retain ; int revoking ; int flushing ; int mds ; struct rb_node *p ; int tried_invalidate ; int delayed ; int sent ; int force_requeue ; int num ; int queue_invalidate ; int is_delayed ; int tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; char const *tmp___2 ; char const *tmp___3 ; char const *tmp___4 ; char const *tmp___5 ; char const *tmp___6 ; char const *tmp___7 ; char const *tmp___8 ; long tmp___9 ; struct _ddebug descriptor___0 ; char const *tmp___10 ; long tmp___11 ; struct _ddebug descriptor___1 ; char const *tmp___12 ; long tmp___13 ; struct _ddebug descriptor___2 ; char const *tmp___14 ; long tmp___15 ; int tmp___16 ; struct rb_node const *__mptr ; struct _ddebug descriptor___3 ; char const *tmp___17 ; char const *tmp___18 ; char const *tmp___19 ; char const *tmp___20 ; long tmp___21 ; struct _ddebug descriptor___4 ; char const *tmp___22 ; long tmp___23 ; struct _ddebug descriptor___5 ; char const *tmp___24 ; long tmp___25 ; struct _ddebug descriptor___6 ; char const *tmp___26 ; long tmp___27 ; struct _ddebug descriptor___7 ; char const *tmp___28 ; char const *tmp___29 ; long tmp___30 ; struct _ddebug descriptor___8 ; char const *tmp___31 ; char const *tmp___32 ; char const *tmp___33 ; char const *tmp___34 ; char const *tmp___35 ; long tmp___36 ; struct _ddebug descriptor___9 ; char const *tmp___37 ; long tmp___38 ; struct _ddebug descriptor___10 ; char const *tmp___39 ; long tmp___40 ; struct _ddebug descriptor___11 ; char const *tmp___41 ; long tmp___42 ; int tmp___43 ; struct _ddebug descriptor___12 ; char const *tmp___44 ; long tmp___45 ; int tmp___46 ; int tmp___47 ; { tmp = ceph_inode_to_client(& ci->vfs_inode); fsc = tmp; mdsc = fsc->mdsc; inode = & ci->vfs_inode; took_snap_rwsem = 0; flushing = 0; mds = -1; tried_invalidate = 0; delayed = 0; sent = 0; force_requeue = 0; queue_invalidate = 0; is_delayed = flags & 1; if (mdsc->stopping != 0) { is_delayed = 1; } else { } spin_lock(& ci->i_ceph_lock); if ((ci->i_ceph_flags & 8U) != 0U) { flags = flags | 4; } else { } tmp___0 = list_empty((struct list_head const *)(& ci->i_cap_snaps)); if (tmp___0 == 0) { __ceph_flush_snaps(ci, & session, 0); } else { } goto retry_locked; retry: spin_lock(& ci->i_ceph_lock); retry_locked: file_wanted = __ceph_caps_file_wanted(ci); used = __ceph_caps_used(ci); want = file_wanted | used; issued = __ceph_caps_issued(ci, & implemented); revoking = ~ issued & implemented; retain = want | 1; if (mdsc->stopping == 0 && (unsigned int )inode->ldv_13165.i_nlink != 0U) { if (want != 0) { retain = retain | 49149; } else { retain = retain | 340; if (ci->i_max_size == 0ULL) { retain = retain | 3412; } else { } } } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_check_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : check_caps %p file_want %s used %s dirty %s flushing %s issued %s revoking %s retain %s %s%s%s\n"; descriptor.lineno = 1592U; descriptor.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___1 = ceph_cap_string(retain); tmp___2 = ceph_cap_string(revoking); tmp___3 = ceph_cap_string(issued); tmp___4 = ceph_cap_string((int )ci->i_flushing_caps); tmp___5 = ceph_cap_string((int )ci->i_dirty_caps); tmp___6 = ceph_cap_string(used); tmp___7 = ceph_cap_string(file_wanted); tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : check_caps %p file_want %s used %s dirty %s flushing %s issued %s revoking %s retain %s %s%s%s\n", 3, (char *)" ", tmp___8, 1592, inode, tmp___7, tmp___6, tmp___5, tmp___4, tmp___3, tmp___2, tmp___1, (flags & 2) != 0 ? (char *)" AUTHONLY" : (char *)"", flags & 1 ? (char *)" NODELAY" : (char *)"", (flags & 4) != 0 ? (char *)" FLUSH" : (char *)""); } else { } if (((((is_delayed == 0 || mdsc->stopping != 0) && ci->i_wrbuffer_ref == 0) && inode->i_data.nrpages != 0UL) && (file_wanted == 0 || (revoking & 33792) != 0)) && tried_invalidate == 0) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_check_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : check_caps trying to invalidate on %p\n"; descriptor___0.lineno = 1606U; descriptor___0.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : check_caps trying to invalidate on %p\n", 3, (char *)" ", tmp___10, 1606, inode); } else { } tmp___16 = try_nonblocking_invalidate(inode); if (tmp___16 < 0) { if ((revoking & 33792) != 0) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_check_caps"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : check_caps queuing invalidate\n"; descriptor___1.lineno = 1610U; descriptor___1.flags = 0U; tmp___13 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___13 != 0L) { tmp___12 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : check_caps queuing invalidate\n", 3, (char *)" ", tmp___12, 1610); } else { } queue_invalidate = 1; ci->i_rdcache_revoking = ci->i_rdcache_gen; } else { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_check_caps"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : check_caps failed to invalidate pages\n"; descriptor___2.lineno = 1614U; descriptor___2.flags = 0U; tmp___15 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___15 != 0L) { tmp___14 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : check_caps failed to invalidate pages\n", 3, (char *)" ", tmp___14, 1614); } else { } force_requeue = 1; __cap_set_timeouts(mdsc, ci); } } else { } tried_invalidate = 1; goto retry_locked; } else { } num = 0; p = rb_first((struct rb_root const *)(& ci->i_caps)); goto ldv_29418; ldv_29417: __mptr = (struct rb_node const *)p; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; num = num + 1; if (cap->mds <= mds || ((flags & 2) != 0 && (unsigned long )ci->i_auth_cap != (unsigned long )cap)) { goto ldv_29399; } else { } revoking = cap->implemented & ~ cap->issued; descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_check_caps"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : mds%d cap %p issued %s implemented %s revoking %s\n"; descriptor___3.lineno = 1641U; descriptor___3.flags = 0U; tmp___21 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___21 != 0L) { tmp___17 = ceph_cap_string(revoking); tmp___18 = ceph_cap_string(cap->implemented); tmp___19 = ceph_cap_string(cap->issued); tmp___20 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : mds%d cap %p issued %s implemented %s revoking %s\n", 3, (char *)" ", tmp___20, 1641, cap->mds, cap, tmp___19, tmp___18, tmp___17); } else { } if ((unsigned long )ci->i_auth_cap == (unsigned long )cap && (cap->issued & 4096) != 0) { if (ci->i_wanted_max_size > ci->i_max_size && ci->i_wanted_max_size > ci->i_requested_max_size) { descriptor___4.modname = "ceph"; descriptor___4.function = "ceph_check_caps"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : requesting new max_size\n"; descriptor___4.lineno = 1648U; descriptor___4.flags = 0U; tmp___23 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___23 != 0L) { tmp___22 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : requesting new max_size\n", 3, (char *)" ", tmp___22, 1648); } else { } goto ack; } else { } if ((unsigned long long )(inode->i_size << 1) >= ci->i_max_size && ci->i_reported_size << 1 < ci->i_max_size) { descriptor___5.modname = "ceph"; descriptor___5.function = "ceph_check_caps"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : i_size approaching max_size\n"; descriptor___5.lineno = 1655U; descriptor___5.flags = 0U; tmp___25 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___25 != 0L) { tmp___24 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : i_size approaching max_size\n", 3, (char *)" ", tmp___24, 1655); } else { } goto ack; } else { } } else { } if (((unsigned long )ci->i_auth_cap == (unsigned long )cap && (flags & 4) != 0) && ci->i_dirty_caps != 0U) { descriptor___6.modname = "ceph"; descriptor___6.function = "ceph_check_caps"; descriptor___6.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___6.format = "%.*s %12.12s:%-4d : flushing dirty caps\n"; descriptor___6.lineno = 1662U; descriptor___6.flags = 0U; tmp___27 = ldv__builtin_expect((long )descriptor___6.flags & 1L, 0L); if (tmp___27 != 0L) { tmp___26 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___6, "ceph: %.*s %12.12s:%-4d : flushing dirty caps\n", 3, (char *)" ", tmp___26, 1662); } else { } goto ack; } else { } if (revoking != 0 && (revoking & used) == 0) { descriptor___7.modname = "ceph"; descriptor___7.function = "ceph_check_caps"; descriptor___7.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___7.format = "%.*s %12.12s:%-4d : completed revocation of %s\n"; descriptor___7.lineno = 1669U; descriptor___7.flags = 0U; tmp___30 = ldv__builtin_expect((long )descriptor___7.flags & 1L, 0L); if (tmp___30 != 0L) { tmp___28 = ceph_cap_string(cap->implemented & ~ cap->issued); tmp___29 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___7, "ceph: %.*s %12.12s:%-4d : completed revocation of %s\n", 3, (char *)" ", tmp___29, 1669, tmp___28); } else { } goto ack; } else { } if ((~ (cap->mds_wanted | cap->issued) & want) != 0) { goto ack; } else { } if ((cap->issued & ~ retain) == 0 && cap->mds_wanted == want) { goto ldv_29399; } else { } if (is_delayed != 0) { goto ack; } else { } if ((ci->i_ceph_flags & 4U) == 0U && (long )jiffies - (long )ci->i_hold_caps_max < 0L) { descriptor___8.modname = "ceph"; descriptor___8.function = "ceph_check_caps"; descriptor___8.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___8.format = "%.*s %12.12s:%-4d : delaying issued %s -> %s, wanted %s -> %s\n"; descriptor___8.lineno = 1692U; descriptor___8.flags = 0U; tmp___36 = ldv__builtin_expect((long )descriptor___8.flags & 1L, 0L); if (tmp___36 != 0L) { tmp___31 = ceph_cap_string(want); tmp___32 = ceph_cap_string(cap->mds_wanted); tmp___33 = ceph_cap_string(cap->issued & retain); tmp___34 = ceph_cap_string(cap->issued); tmp___35 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___8, "ceph: %.*s %12.12s:%-4d : delaying issued %s -> %s, wanted %s -> %s\n", 3, (char *)" ", tmp___35, 1692, tmp___34, tmp___33, tmp___32, tmp___31); } else { } delayed = delayed + 1; goto ldv_29399; } else { } ack: ; if ((ci->i_ceph_flags & 16U) != 0U) { descriptor___9.modname = "ceph"; descriptor___9.function = "ceph_check_caps"; descriptor___9.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___9.format = "%.*s %12.12s:%-4d : skipping %p I_NOFLUSH set\n"; descriptor___9.lineno = 1699U; descriptor___9.flags = 0U; tmp___38 = ldv__builtin_expect((long )descriptor___9.flags & 1L, 0L); if (tmp___38 != 0L) { tmp___37 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___9, "ceph: %.*s %12.12s:%-4d : skipping %p I_NOFLUSH set\n", 3, (char *)" ", tmp___37, 1699, inode); } else { } goto ldv_29399; } else { } if ((unsigned long )session != (unsigned long )((struct ceph_mds_session *)0) && (unsigned long )cap->session != (unsigned long )session) { descriptor___10.modname = "ceph"; descriptor___10.function = "ceph_check_caps"; descriptor___10.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___10.format = "%.*s %12.12s:%-4d : oops, wrong session %p mutex\n"; descriptor___10.lineno = 1704U; descriptor___10.flags = 0U; tmp___40 = ldv__builtin_expect((long )descriptor___10.flags & 1L, 0L); if (tmp___40 != 0L) { tmp___39 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___10, "ceph: %.*s %12.12s:%-4d : oops, wrong session %p mutex\n", 3, (char *)" ", tmp___39, 1704, session); } else { } ldv_mutex_unlock_112(& session->s_mutex); session = 0; } else { } if ((unsigned long )session == (unsigned long )((struct ceph_mds_session *)0)) { session = cap->session; tmp___43 = ldv_mutex_trylock_113(& session->s_mutex); if (tmp___43 == 0) { descriptor___11.modname = "ceph"; descriptor___11.function = "ceph_check_caps"; descriptor___11.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___11.format = "%.*s %12.12s:%-4d : inverting session/ino locks on %p\n"; descriptor___11.lineno = 1712U; descriptor___11.flags = 0U; tmp___42 = ldv__builtin_expect((long )descriptor___11.flags & 1L, 0L); if (tmp___42 != 0L) { tmp___41 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___11, "ceph: %.*s %12.12s:%-4d : inverting session/ino locks on %p\n", 3, (char *)" ", tmp___41, 1712, session); } else { } spin_unlock(& ci->i_ceph_lock); if (took_snap_rwsem != 0) { up_read(& mdsc->snap_rwsem); took_snap_rwsem = 0; } else { } ldv_mutex_lock_114(& session->s_mutex); goto retry; } else { } } else { } if (took_snap_rwsem == 0) { tmp___46 = down_read_trylock(& mdsc->snap_rwsem); if (tmp___46 == 0) { descriptor___12.modname = "ceph"; descriptor___12.function = "ceph_check_caps"; descriptor___12.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___12.format = "%.*s %12.12s:%-4d : inverting snap/in locks on %p\n"; descriptor___12.lineno = 1726U; descriptor___12.flags = 0U; tmp___45 = ldv__builtin_expect((long )descriptor___12.flags & 1L, 0L); if (tmp___45 != 0L) { tmp___44 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___12, "ceph: %.*s %12.12s:%-4d : inverting snap/in locks on %p\n", 3, (char *)" ", tmp___44, 1726, inode); } else { } spin_unlock(& ci->i_ceph_lock); down_read(& mdsc->snap_rwsem); took_snap_rwsem = 1; goto retry; } else { } took_snap_rwsem = 1; } else { } if ((unsigned long )ci->i_auth_cap == (unsigned long )cap && ci->i_dirty_caps != 0U) { flushing = __mark_caps_flushing(inode, session); } else { flushing = 0; } mds = cap->mds; sent = sent + 1; tmp___47 = __send_cap(mdsc, cap, 5, used, want, retain, flushing, 0); delayed = tmp___47 + delayed; goto retry; ldv_29399: p = rb_next((struct rb_node const *)p); ldv_29418: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29417; } else { } if (delayed != 0 && is_delayed != 0) { force_requeue = 1; } else { } if (delayed == 0 && is_delayed == 0) { __cap_delay_cancel(mdsc, ci); } else if (is_delayed == 0 || force_requeue != 0) { __cap_delay_requeue(mdsc, ci); } else { } spin_unlock(& ci->i_ceph_lock); if (queue_invalidate != 0) { ceph_queue_invalidate(inode); } else { } if ((unsigned long )session != (unsigned long )((struct ceph_mds_session *)0)) { ldv_mutex_unlock_115(& session->s_mutex); } else { } if (took_snap_rwsem != 0) { up_read(& mdsc->snap_rwsem); } else { } return; } } static int try_flush_caps(struct inode *inode , struct ceph_mds_session *session , unsigned int *flush_tid ) { struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___0 ; int unlock_session ; int flushing ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct ceph_cap *cap ; int used ; int tmp___3 ; int want ; int tmp___4 ; int delayed ; long tmp___5 ; { tmp = ceph_sb_to_client(inode->i_sb); mdsc = tmp->mdsc; tmp___0 = ceph_inode(inode); ci = tmp___0; unlock_session = (unsigned long )session == (unsigned long )((struct ceph_mds_session *)0); flushing = 0; retry: spin_lock(& ci->i_ceph_lock); if ((ci->i_ceph_flags & 16U) != 0U) { descriptor.modname = "ceph"; descriptor.function = "try_flush_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : try_flush_caps skipping %p I_NOFLUSH set\n"; descriptor.lineno = 1785U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : try_flush_caps skipping %p I_NOFLUSH set\n", 3, (char *)" ", tmp___1, 1785, inode); } else { } goto out; } else { } if (ci->i_dirty_caps != 0U && (unsigned long )ci->i_auth_cap != (unsigned long )((struct ceph_cap *)0)) { cap = ci->i_auth_cap; tmp___3 = __ceph_caps_used(ci); used = tmp___3; tmp___4 = __ceph_caps_wanted(ci); want = tmp___4; if ((unsigned long )session == (unsigned long )((struct ceph_mds_session *)0)) { spin_unlock(& ci->i_ceph_lock); session = cap->session; ldv_mutex_lock_116(& session->s_mutex); goto retry; } else { } tmp___5 = ldv__builtin_expect((unsigned long )cap->session != (unsigned long )session, 0L); if (tmp___5 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (1800), "i" (12UL)); ldv_29437: ; goto ldv_29437; } else { } if ((cap->session)->s_state <= 2) { goto out; } else { } flushing = __mark_caps_flushing(inode, session); delayed = __send_cap(mdsc, cap, 7, used, want, cap->issued | cap->implemented, flushing, flush_tid); if (delayed == 0) { goto out_unlocked; } else { } spin_lock(& ci->i_ceph_lock); __cap_delay_requeue(mdsc, ci); } else { } out: spin_unlock(& ci->i_ceph_lock); out_unlocked: ; if ((unsigned long )session != (unsigned long )((struct ceph_mds_session *)0) && unlock_session != 0) { ldv_mutex_unlock_117(& session->s_mutex); } else { } return (flushing); } } static int caps_are_flushed(struct inode *inode , unsigned int tid ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int i ; int ret ; { tmp = ceph_inode(inode); ci = tmp; ret = 1; spin_lock(& ci->i_ceph_lock); i = 0; goto ldv_29448; ldv_29447: ; if ((ci->i_flushing_caps & (unsigned int )(1 << i)) != 0U && (unsigned int )ci->i_cap_flush_tid[i] <= tid) { ret = 0; goto ldv_29446; } else { } i = i + 1; ldv_29448: ; if (i <= 21) { goto ldv_29447; } else { } ldv_29446: spin_unlock(& ci->i_ceph_lock); return (ret); } } static void sync_write_wait(struct inode *inode ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct list_head *head ; struct ceph_osd_request *req ; u64 last_tid ; int tmp___0 ; struct list_head const *__mptr ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; struct list_head const *__mptr___0 ; { tmp = ceph_inode(inode); ci = tmp; head = & ci->i_unsafe_writes; spin_lock(& ci->i_unsafe_lock); tmp___0 = list_empty((struct list_head const *)head); if (tmp___0 != 0) { goto out; } else { } __mptr = (struct list_head const *)head->prev; req = (struct ceph_osd_request *)__mptr + 0xfffffffffffffe28UL; last_tid = req->r_tid; ldv_29464: ceph_osdc_get_request(req); spin_unlock(& ci->i_unsafe_lock); descriptor.modname = "ceph"; descriptor.function = "sync_write_wait"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : sync_write_wait on tid %llu (until %llu)\n"; descriptor.lineno = 1870U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : sync_write_wait on tid %llu (until %llu)\n", 3, (char *)" ", tmp___1, 1870, req->r_tid, last_tid); } else { } wait_for_completion(& req->r_safe_completion); spin_lock(& ci->i_unsafe_lock); ceph_osdc_put_request(req); tmp___3 = list_empty((struct list_head const *)head); if (tmp___3 != 0) { goto ldv_29461; } else { } __mptr___0 = (struct list_head const *)head->next; req = (struct ceph_osd_request *)__mptr___0 + 0xfffffffffffffe28UL; if (req->r_tid < last_tid) { goto ldv_29464; } else { } ldv_29461: ; out: spin_unlock(& ci->i_unsafe_lock); return; } } int ceph_fsync(struct file *file , loff_t start , loff_t end , int datasync ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; unsigned int flush_tid ; int ret ; int dirty ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; int __ret ; wait_queue_t __wait ; struct task_struct *tmp___7 ; int tmp___8 ; struct task_struct *tmp___9 ; int tmp___10 ; int tmp___11 ; struct _ddebug descriptor___2 ; char const *tmp___12 ; long tmp___13 ; { inode = (file->f_mapping)->host; tmp = ceph_inode(inode); ci = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_fsync"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : fsync %p%s\n"; descriptor.lineno = 1896U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : fsync %p%s\n", 3, (char *)" ", tmp___0, 1896, inode, datasync != 0 ? (char *)" datasync" : (char *)""); } else { } sync_write_wait(inode); ret = filemap_write_and_wait_range(inode->i_mapping, start, end); if (ret < 0) { return (ret); } else { } ldv_mutex_lock_118(& inode->i_mutex); dirty = try_flush_caps(inode, 0, & flush_tid); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_fsync"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : fsync dirty caps are %s\n"; descriptor___0.lineno = 1905U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___2 = ceph_cap_string(dirty); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : fsync dirty caps are %s\n", 3, (char *)" ", tmp___3, 1905, tmp___2); } else { } if (datasync == 0 && (dirty & -12801) != 0) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_fsync"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : fsync waiting for flush_tid %u\n"; descriptor___1.lineno = 1913U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : fsync waiting for flush_tid %u\n", 3, (char *)" ", tmp___5, 1913, flush_tid); } else { } __ret = 0; tmp___11 = caps_are_flushed(inode, flush_tid); if (tmp___11 == 0) { tmp___7 = get_current(); __wait.flags = 0U; __wait.private = (void *)tmp___7; __wait.func = & autoremove_wake_function; __wait.task_list.next = & __wait.task_list; __wait.task_list.prev = & __wait.task_list; ldv_29484: prepare_to_wait(& ci->i_cap_wq, & __wait, 1); tmp___8 = caps_are_flushed(inode, flush_tid); if (tmp___8 != 0) { goto ldv_29482; } else { } tmp___9 = get_current(); tmp___10 = signal_pending(tmp___9); if (tmp___10 == 0) { schedule(); goto ldv_29483; } else { } __ret = -512; goto ldv_29482; ldv_29483: ; goto ldv_29484; ldv_29482: finish_wait(& ci->i_cap_wq, & __wait); } else { } ret = __ret; } else { } descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_fsync"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : fsync %p%s done\n"; descriptor___2.lineno = 1918U; descriptor___2.flags = 0U; tmp___13 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___13 != 0L) { tmp___12 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : fsync %p%s done\n", 3, (char *)" ", tmp___12, 1918, inode, datasync != 0 ? (char *)" datasync" : (char *)""); } else { } ldv_mutex_unlock_119(& inode->i_mutex); return (ret); } } int ceph_write_inode(struct inode *inode , struct writeback_control *wbc ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; unsigned int flush_tid ; int err ; int dirty ; int wait ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; int __ret ; wait_queue_t __wait ; struct task_struct *tmp___2 ; int tmp___3 ; struct task_struct *tmp___4 ; int tmp___5 ; int tmp___6 ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp___7 ; int tmp___8 ; { tmp = ceph_inode(inode); ci = tmp; err = 0; wait = (unsigned int )wbc->sync_mode == 1U; descriptor.modname = "ceph"; descriptor.function = "ceph_write_inode"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : write_inode %p wait=%d\n"; descriptor.lineno = 1937U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : write_inode %p wait=%d\n", 3, (char *)" ", tmp___0, 1937, inode, wait); } else { } if (wait != 0) { dirty = try_flush_caps(inode, 0, & flush_tid); if (dirty != 0) { __ret = 0; tmp___6 = caps_are_flushed(inode, flush_tid); if (tmp___6 == 0) { tmp___2 = get_current(); __wait.flags = 0U; __wait.private = (void *)tmp___2; __wait.func = & autoremove_wake_function; __wait.task_list.next = & __wait.task_list; __wait.task_list.prev = & __wait.task_list; ldv_29502: prepare_to_wait(& ci->i_cap_wq, & __wait, 1); tmp___3 = caps_are_flushed(inode, flush_tid); if (tmp___3 != 0) { goto ldv_29500; } else { } tmp___4 = get_current(); tmp___5 = signal_pending(tmp___4); if (tmp___5 == 0) { schedule(); goto ldv_29501; } else { } __ret = -512; goto ldv_29500; ldv_29501: ; goto ldv_29502; ldv_29500: finish_wait(& ci->i_cap_wq, & __wait); } else { } err = __ret; } else { } } else { tmp___7 = ceph_sb_to_client(inode->i_sb); mdsc = tmp___7->mdsc; spin_lock(& ci->i_ceph_lock); tmp___8 = __ceph_caps_dirty(ci); if (tmp___8 != 0) { __cap_delay_requeue_front(mdsc, ci); } else { } spin_unlock(& ci->i_ceph_lock); } return (err); } } static void kick_flushing_capsnaps(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_cap_snap *capsnap ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; struct ceph_inode_info *ci ; struct inode *inode ; struct ceph_cap *cap ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct list_head const *__mptr___0 ; { descriptor.modname = "ceph"; descriptor.function = "kick_flushing_capsnaps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : kick_flushing_capsnaps mds%d\n"; descriptor.lineno = 1966U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : kick_flushing_capsnaps mds%d\n", 3, (char *)" ", tmp, 1966, session->s_mds); } else { } __mptr = (struct list_head const *)session->s_cap_snaps_flushing.next; capsnap = (struct ceph_cap_snap *)__mptr + 0xffffffffffffffe0UL; goto ldv_29521; ldv_29520: ci = capsnap->ci; inode = & ci->vfs_inode; spin_lock(& ci->i_ceph_lock); cap = ci->i_auth_cap; if ((unsigned long )cap != (unsigned long )((struct ceph_cap *)0) && (unsigned long )cap->session == (unsigned long )session) { descriptor___0.modname = "ceph"; descriptor___0.function = "kick_flushing_capsnaps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : kick_flushing_caps %p cap %p capsnap %p\n"; descriptor___0.lineno = 1977U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : kick_flushing_caps %p cap %p capsnap %p\n", 3, (char *)" ", tmp___1, 1977, inode, cap, capsnap); } else { } __ceph_flush_snaps(ci, & session, 1); } else { printk("\vceph: %p auth cap %p not mds%d ???\n", inode, cap, session->s_mds); } spin_unlock(& ci->i_ceph_lock); __mptr___0 = (struct list_head const *)capsnap->flushing_item.next; capsnap = (struct ceph_cap_snap *)__mptr___0 + 0xffffffffffffffe0UL; ldv_29521: ; if ((unsigned long )(& capsnap->flushing_item) != (unsigned long )(& session->s_cap_snaps_flushing)) { goto ldv_29520; } else { } return; } } void ceph_kick_flushing_caps(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_inode_info *ci ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; struct inode *inode ; struct ceph_cap *cap ; int delayed ; struct _ddebug descriptor___0 ; char const *tmp___1 ; char const *tmp___2 ; long tmp___3 ; int tmp___4 ; int tmp___5 ; struct list_head const *__mptr___0 ; { kick_flushing_capsnaps(mdsc, session); descriptor.modname = "ceph"; descriptor.function = "ceph_kick_flushing_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : kick_flushing_caps mds%d\n"; descriptor.lineno = 1994U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : kick_flushing_caps mds%d\n", 3, (char *)" ", tmp, 1994, session->s_mds); } else { } __mptr = (struct list_head const *)session->s_cap_flushing.next; ci = (struct ceph_inode_info *)__mptr + 0xfffffffffffffe10UL; goto ldv_29539; ldv_29538: inode = & ci->vfs_inode; delayed = 0; spin_lock(& ci->i_ceph_lock); cap = ci->i_auth_cap; if ((unsigned long )cap != (unsigned long )((struct ceph_cap *)0) && (unsigned long )cap->session == (unsigned long )session) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_kick_flushing_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : kick_flushing_caps %p cap %p %s\n"; descriptor___0.lineno = 2004U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___1 = ceph_cap_string((int )ci->i_flushing_caps); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : kick_flushing_caps %p cap %p %s\n", 3, (char *)" ", tmp___2, 2004, inode, cap, tmp___1); } else { } tmp___4 = __ceph_caps_wanted(ci); tmp___5 = __ceph_caps_used(ci); delayed = __send_cap(mdsc, cap, 7, tmp___5, tmp___4, cap->issued | cap->implemented, (int )ci->i_flushing_caps, 0); if (delayed != 0) { spin_lock(& ci->i_ceph_lock); __cap_delay_requeue(mdsc, ci); spin_unlock(& ci->i_ceph_lock); } else { } } else { printk("\vceph: %p auth cap %p not mds%d ???\n", inode, cap, session->s_mds); spin_unlock(& ci->i_ceph_lock); } __mptr___0 = (struct list_head const *)ci->i_flushing_item.next; ci = (struct ceph_inode_info *)__mptr___0 + 0xfffffffffffffe10UL; ldv_29539: ; if ((unsigned long )(& ci->i_flushing_item) != (unsigned long )(& session->s_cap_flushing)) { goto ldv_29538; } else { } return; } } static void kick_flushing_inode_caps(struct ceph_mds_client *mdsc , struct ceph_mds_session *session , struct inode *inode ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_cap *cap ; int delayed ; struct _ddebug descriptor ; char const *tmp___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; int tmp___4 ; { tmp = ceph_inode(inode); ci = tmp; delayed = 0; spin_lock(& ci->i_ceph_lock); cap = ci->i_auth_cap; descriptor.modname = "ceph"; descriptor.function = "kick_flushing_inode_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : kick_flushing_inode_caps %p flushing %s flush_seq %lld\n"; descriptor.lineno = 2034U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___0 = ceph_cap_string((int )ci->i_flushing_caps); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : kick_flushing_inode_caps %p flushing %s flush_seq %lld\n", 3, (char *)" ", tmp___1, 2034, inode, tmp___0, ci->i_cap_flush_seq); } else { } __ceph_flush_snaps(ci, & session, 1); if (ci->i_flushing_caps != 0U) { tmp___3 = __ceph_caps_wanted(ci); tmp___4 = __ceph_caps_used(ci); delayed = __send_cap(mdsc, cap, 7, tmp___4, tmp___3, cap->issued | cap->implemented, (int )ci->i_flushing_caps, 0); if (delayed != 0) { spin_lock(& ci->i_ceph_lock); __cap_delay_requeue(mdsc, ci); spin_unlock(& ci->i_ceph_lock); } else { } } else { spin_unlock(& ci->i_ceph_lock); } return; } } static void __take_cap_refs(struct ceph_inode_info *ci , int got ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { if (got & 1) { ci->i_pin_ref = ci->i_pin_ref + 1; } else { } if ((got & 2048) != 0) { ci->i_rd_ref = ci->i_rd_ref + 1; } else { } if ((got & 1024) != 0) { ci->i_rdcache_ref = ci->i_rdcache_ref + 1; } else { } if ((got & 4096) != 0) { ci->i_wr_ref = ci->i_wr_ref + 1; } else { } if ((got & 8192) != 0) { if (ci->i_wb_ref == 0) { ihold(& ci->vfs_inode); } else { } ci->i_wb_ref = ci->i_wb_ref + 1; descriptor.modname = "ceph"; descriptor.function = "__take_cap_refs"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __take_cap_refs %p wb %d -> %d (?)\n"; descriptor.lineno = 2074U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __take_cap_refs %p wb %d -> %d (?)\n", 3, (char *)" ", tmp, 2074, & ci->vfs_inode, ci->i_wb_ref + -1, ci->i_wb_ref); } else { } } else { } return; } } static int try_get_cap_refs(struct ceph_inode_info *ci , int need , int want , int *got , loff_t endoff , int *check_max , int *err ) { struct inode *inode ; int ret ; int have ; int implemented ; int file_wanted ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; char const *tmp___4 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___1 ; char const *tmp___7 ; long tmp___8 ; struct _ddebug descriptor___2 ; char const *tmp___9 ; long tmp___10 ; bool tmp___11 ; int not ; int revoking ; struct _ddebug descriptor___3 ; char const *tmp___12 ; char const *tmp___13 ; char const *tmp___14 ; char const *tmp___15 ; long tmp___16 ; struct _ddebug descriptor___4 ; char const *tmp___17 ; char const *tmp___18 ; char const *tmp___19 ; long tmp___20 ; struct _ddebug descriptor___5 ; char const *tmp___21 ; char const *tmp___22 ; long tmp___23 ; { inode = & ci->vfs_inode; ret = 0; descriptor.modname = "ceph"; descriptor.function = "try_get_cap_refs"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : get_cap_refs %p need %s want %s\n"; descriptor.lineno = 2094U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp = ceph_cap_string(want); tmp___0 = ceph_cap_string(need); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : get_cap_refs %p need %s want %s\n", 3, (char *)" ", tmp___1, 2094, inode, tmp___0, tmp); } else { } spin_lock(& ci->i_ceph_lock); file_wanted = __ceph_caps_file_wanted(ci); if ((file_wanted & need) == 0) { descriptor___0.modname = "ceph"; descriptor___0.function = "try_get_cap_refs"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : try_get_cap_refs need %s file_wanted %s, EBADF\n"; descriptor___0.lineno = 2101U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___3 = ceph_cap_string(file_wanted); tmp___4 = ceph_cap_string(need); tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : try_get_cap_refs need %s file_wanted %s, EBADF\n", 3, (char *)" ", tmp___5, 2101, tmp___4, tmp___3); } else { } *err = -9; ret = 1; goto out; } else { } if ((need & 4096) != 0) { if (endoff >= 0LL && (long long )ci->i_max_size < endoff) { descriptor___1.modname = "ceph"; descriptor___1.function = "try_get_cap_refs"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : get_cap_refs %p endoff %llu > maxsize %llu\n"; descriptor___1.lineno = 2110U; descriptor___1.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : get_cap_refs %p endoff %llu > maxsize %llu\n", 3, (char *)" ", tmp___7, 2110, inode, endoff, ci->i_max_size); } else { } if ((unsigned long long )endoff > ci->i_wanted_max_size) { *check_max = 1; ret = 1; } else { } goto out; } else { } tmp___11 = __ceph_have_pending_cap_snap(ci); if ((int )tmp___11) { descriptor___2.modname = "ceph"; descriptor___2.function = "try_get_cap_refs"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : get_cap_refs %p cap_snap_pending\n"; descriptor___2.lineno = 2122U; descriptor___2.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : get_cap_refs %p cap_snap_pending\n", 3, (char *)" ", tmp___9, 2122, inode); } else { } goto out; } else { } } else { } have = __ceph_caps_issued(ci, & implemented); if (ci->i_truncate_pending != 0) { have = have & -4097; } else { } if ((have & need) == need) { not = ~ (have & need) & want; revoking = ~ have & implemented; descriptor___3.modname = "ceph"; descriptor___3.function = "try_get_cap_refs"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : get_cap_refs %p have %s but not %s (revoking %s)\n"; descriptor___3.lineno = 2145U; descriptor___3.flags = 0U; tmp___16 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___16 != 0L) { tmp___12 = ceph_cap_string(revoking); tmp___13 = ceph_cap_string(not); tmp___14 = ceph_cap_string(have); tmp___15 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : get_cap_refs %p have %s but not %s (revoking %s)\n", 3, (char *)" ", tmp___15, 2145, inode, tmp___14, tmp___13, tmp___12); } else { } if ((revoking & not) == 0) { *got = (have & want) | need; __take_cap_refs(ci, *got); ret = 1; } else { } } else { descriptor___4.modname = "ceph"; descriptor___4.function = "try_get_cap_refs"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : get_cap_refs %p have %s needed %s\n"; descriptor___4.lineno = 2153U; descriptor___4.flags = 0U; tmp___20 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___20 != 0L) { tmp___17 = ceph_cap_string(need); tmp___18 = ceph_cap_string(have); tmp___19 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : get_cap_refs %p have %s needed %s\n", 3, (char *)" ", tmp___19, 2153, inode, tmp___18, tmp___17); } else { } } out: spin_unlock(& ci->i_ceph_lock); descriptor___5.modname = "ceph"; descriptor___5.function = "try_get_cap_refs"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : get_cap_refs %p ret %d got %s\n"; descriptor___5.lineno = 2158U; descriptor___5.flags = 0U; tmp___23 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___23 != 0L) { tmp___21 = ceph_cap_string(*got); tmp___22 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : get_cap_refs %p ret %d got %s\n", 3, (char *)" ", tmp___22, 2158, inode, ret, tmp___21); } else { } return (ret); } } static void check_max_size(struct inode *inode , loff_t endoff ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int check ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { tmp = ceph_inode(inode); ci = tmp; check = 0; spin_lock(& ci->i_ceph_lock); if (((unsigned long long )endoff >= ci->i_max_size || inode->i_size << 1 < endoff) && (unsigned long long )endoff > ci->i_wanted_max_size) { descriptor.modname = "ceph"; descriptor.function = "check_max_size"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : write %p at large endoff %llu, req max_size\n"; descriptor.lineno = 2178U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : write %p at large endoff %llu, req max_size\n", 3, (char *)" ", tmp___0, 2178, inode, endoff); } else { } ci->i_wanted_max_size = (u64 )endoff; check = 1; } else { } spin_unlock(& ci->i_ceph_lock); if (check != 0) { ceph_check_caps(ci, 2, 0); } else { } return; } } int ceph_get_caps(struct ceph_inode_info *ci , int need , int want , int *got , loff_t endoff ) { int check_max ; int ret ; int err ; int __ret ; wait_queue_t __wait ; struct task_struct *tmp ; int tmp___0 ; struct task_struct *tmp___1 ; int tmp___2 ; int tmp___3 ; { retry: ; if (endoff > 0LL) { check_max_size(& ci->vfs_inode, endoff); } else { } check_max = 0; err = 0; __ret = 0; tmp___3 = try_get_cap_refs(ci, need, want, got, endoff, & check_max, & err); if (tmp___3 == 0) { tmp = get_current(); __wait.flags = 0U; __wait.private = (void *)tmp; __wait.func = & autoremove_wake_function; __wait.task_list.next = & __wait.task_list; __wait.task_list.prev = & __wait.task_list; ldv_29605: prepare_to_wait(& ci->i_cap_wq, & __wait, 1); tmp___0 = try_get_cap_refs(ci, need, want, got, endoff, & check_max, & err); if (tmp___0 != 0) { goto ldv_29603; } else { } tmp___1 = get_current(); tmp___2 = signal_pending(tmp___1); if (tmp___2 == 0) { schedule(); goto ldv_29604; } else { } __ret = -512; goto ldv_29603; ldv_29604: ; goto ldv_29605; ldv_29603: finish_wait(& ci->i_cap_wq, & __wait); } else { } ret = __ret; if (err != 0) { ret = err; } else { } if (check_max != 0) { goto retry; } else { } return (ret); } } void ceph_get_cap_refs(struct ceph_inode_info *ci , int caps ) { { spin_lock(& ci->i_ceph_lock); __take_cap_refs(ci, caps); spin_unlock(& ci->i_ceph_lock); return; } } void ceph_put_cap_refs(struct ceph_inode_info *ci , int had ) { struct inode *inode ; int last ; int put ; int flushsnaps ; int wake ; struct ceph_cap_snap *capsnap ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; int tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; char const *tmp___3 ; long tmp___4 ; { inode = & ci->vfs_inode; last = 0; put = 0; flushsnaps = 0; wake = 0; spin_lock(& ci->i_ceph_lock); if (had & 1) { ci->i_pin_ref = ci->i_pin_ref - 1; } else { } if ((had & 2048) != 0) { ci->i_rd_ref = ci->i_rd_ref - 1; if (ci->i_rd_ref == 0) { last = last + 1; } else { } } else { } if ((had & 1024) != 0) { ci->i_rdcache_ref = ci->i_rdcache_ref - 1; if (ci->i_rdcache_ref == 0) { last = last + 1; } else { } } else { } if ((had & 8192) != 0) { ci->i_wb_ref = ci->i_wb_ref - 1; if (ci->i_wb_ref == 0) { last = last + 1; put = put + 1; } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_put_cap_refs"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : put_cap_refs %p wb %d -> %d (?)\n"; descriptor.lineno = 2254U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : put_cap_refs %p wb %d -> %d (?)\n", 3, (char *)" ", tmp, 2254, inode, ci->i_wb_ref + 1, ci->i_wb_ref); } else { } } else { } if ((had & 4096) != 0) { ci->i_wr_ref = ci->i_wr_ref - 1; if (ci->i_wr_ref == 0) { last = last + 1; tmp___1 = list_empty((struct list_head const *)(& ci->i_cap_snaps)); if (tmp___1 == 0) { __mptr = (struct list_head const *)ci->i_cap_snaps.next; capsnap = (struct ceph_cap_snap *)__mptr + 0xfffffffffffffff0UL; if (capsnap->writing != 0) { capsnap->writing = 0; flushsnaps = __ceph_finish_cap_snap(ci, capsnap); wake = 1; } else { } } else { } } else { } } else { } spin_unlock(& ci->i_ceph_lock); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_put_cap_refs"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : put_cap_refs %p had %s%s%s\n"; descriptor___0.lineno = 2275U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___2 = ceph_cap_string(had); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : put_cap_refs %p had %s%s%s\n", 3, (char *)" ", tmp___3, 2275, inode, tmp___2, last != 0 ? (char *)" last" : (char *)"", put != 0 ? (char *)" put" : (char *)""); } else { } if (last != 0 && flushsnaps == 0) { ceph_check_caps(ci, 0, 0); } else if (flushsnaps != 0) { ceph_flush_snaps(ci); } else { } if (wake != 0) { __wake_up(& ci->i_cap_wq, 3U, 0, 0); } else { } if (put != 0) { iput(inode); } else { } return; } } void ceph_put_wrbuffer_cap_refs(struct ceph_inode_info *ci , int nr , struct ceph_snap_context *snapc ) { struct inode *inode ; int last ; int complete_capsnap ; int drop_capsnap ; int found ; struct ceph_cap_snap *capsnap ; long tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct list_head const *__mptr ; struct list_head const *__mptr___0 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; { inode = & ci->vfs_inode; last = 0; complete_capsnap = 0; drop_capsnap = 0; found = 0; capsnap = 0; spin_lock(& ci->i_ceph_lock); ci->i_wrbuffer_ref = ci->i_wrbuffer_ref - nr; last = ci->i_wrbuffer_ref == 0; if ((unsigned long )ci->i_head_snapc == (unsigned long )snapc) { ci->i_wrbuffer_ref_head = ci->i_wrbuffer_ref_head - nr; if ((ci->i_wrbuffer_ref_head == 0 && ci->i_dirty_caps == 0U) && ci->i_flushing_caps == 0U) { tmp = ldv__builtin_expect((unsigned long )ci->i_head_snapc == (unsigned long )((struct ceph_snap_context *)0), 0L); if (tmp != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (2312), "i" (12UL)); ldv_29637: ; goto ldv_29637; } else { } ceph_put_snap_context(ci->i_head_snapc); ci->i_head_snapc = 0; } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_put_wrbuffer_cap_refs"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : put_wrbuffer_cap_refs on %p head %d/%d -> %d/%d %s\n"; descriptor.lineno = 2320U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : put_wrbuffer_cap_refs on %p head %d/%d -> %d/%d %s\n", 3, (char *)" ", tmp___0, 2320, inode, ci->i_wrbuffer_ref + nr, ci->i_wrbuffer_ref_head + nr, ci->i_wrbuffer_ref, ci->i_wrbuffer_ref_head, last != 0 ? (char *)" LAST" : (char *)""); } else { } } else { __mptr = (struct list_head const *)ci->i_cap_snaps.next; capsnap = (struct ceph_cap_snap *)__mptr + 0xfffffffffffffff0UL; goto ldv_29646; ldv_29645: ; if ((unsigned long )capsnap->context == (unsigned long )snapc) { found = 1; goto ldv_29644; } else { } __mptr___0 = (struct list_head const *)capsnap->ci_item.next; capsnap = (struct ceph_cap_snap *)__mptr___0 + 0xfffffffffffffff0UL; ldv_29646: ; if ((unsigned long )(& capsnap->ci_item) != (unsigned long )(& ci->i_cap_snaps)) { goto ldv_29645; } else { } ldv_29644: tmp___2 = ldv__builtin_expect(found == 0, 0L); if (tmp___2 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (2328), "i" (12UL)); ldv_29647: ; goto ldv_29647; } else { } capsnap->dirty_pages = capsnap->dirty_pages - nr; if (capsnap->dirty_pages == 0) { complete_capsnap = 1; if (capsnap->dirty == 0) { drop_capsnap = 1; } else { } } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_put_wrbuffer_cap_refs"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : put_wrbuffer_cap_refs on %p cap_snap %p snap %lld %d/%d -> %d/%d %s%s%s\n"; descriptor___0.lineno = 2344U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : put_wrbuffer_cap_refs on %p cap_snap %p snap %lld %d/%d -> %d/%d %s%s%s\n", 3, (char *)" ", tmp___3, 2344, inode, capsnap, (capsnap->context)->seq, ci->i_wrbuffer_ref + nr, capsnap->dirty_pages + nr, ci->i_wrbuffer_ref, capsnap->dirty_pages, last != 0 ? (char *)" (wrbuffer last)" : (char *)"", complete_capsnap != 0 ? (char *)" (complete capsnap)" : (char *)"", drop_capsnap != 0 ? (char *)" (drop capsnap)" : (char *)""); } else { } if (drop_capsnap != 0) { ceph_put_snap_context(capsnap->context); list_del(& capsnap->ci_item); list_del(& capsnap->flushing_item); ceph_put_cap_snap(capsnap); } else { } } spin_unlock(& ci->i_ceph_lock); if (last != 0) { ceph_check_caps(ci, 2, 0); iput(inode); } else if (complete_capsnap != 0) { ceph_flush_snaps(ci); __wake_up(& ci->i_cap_wq, 3U, 0, 0); } else { } if (drop_capsnap != 0) { iput(inode); } else { } return; } } static void handle_cap_grant(struct inode *inode , struct ceph_mds_caps *grant , struct ceph_mds_session *session , struct ceph_cap *cap , struct ceph_buffer *xattr_buf ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int mds ; int seq ; int newcaps ; int issued ; int implemented ; int used ; int wanted ; int dirty ; u64 size ; u64 max_size ; struct timespec mtime ; struct timespec atime ; struct timespec ctime ; int check_caps ; int wake ; int writeback ; int revoked_rdcache ; int queue_invalidate ; struct _ddebug descriptor ; char const *tmp___0 ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; int tmp___5 ; int tmp___6 ; struct _ddebug descriptor___1 ; char const *tmp___7 ; long tmp___8 ; int len ; u64 version ; struct _ddebug descriptor___2 ; char const *tmp___9 ; long tmp___10 ; struct _ddebug descriptor___3 ; char const *tmp___11 ; long tmp___12 ; struct _ddebug descriptor___4 ; char const *tmp___13 ; char const *tmp___14 ; char const *tmp___15 ; char const *tmp___16 ; long tmp___17 ; struct _ddebug descriptor___5 ; char const *tmp___18 ; char const *tmp___19 ; char const *tmp___20 ; long tmp___21 ; int revoking ; struct _ddebug descriptor___6 ; char const *tmp___22 ; char const *tmp___23 ; char const *tmp___24 ; char const *tmp___25 ; long tmp___26 ; struct _ddebug descriptor___7 ; char const *tmp___27 ; char const *tmp___28 ; char const *tmp___29 ; long tmp___30 ; struct _ddebug descriptor___8 ; char const *tmp___31 ; char const *tmp___32 ; char const *tmp___33 ; long tmp___34 ; long tmp___35 ; { tmp = ceph_inode(inode); ci = tmp; mds = session->s_mds; seq = (int )grant->seq; newcaps = (int )grant->caps; size = grant->size; max_size = grant->max_size; check_caps = 0; wake = 0; writeback = 0; revoked_rdcache = 0; queue_invalidate = 0; descriptor.modname = "ceph"; descriptor.function = "handle_cap_grant"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_cap_grant inode %p cap %p mds%d seq %d %s\n"; descriptor.lineno = 2398U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___0 = ceph_cap_string(newcaps); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_cap_grant inode %p cap %p mds%d seq %d %s\n", 3, (char *)" ", tmp___1, 2398, inode, cap, mds, seq, tmp___0); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "handle_cap_grant"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : size %llu max_size %llu, i_size %llu\n"; descriptor___0.lineno = 2400U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : size %llu max_size %llu, i_size %llu\n", 3, (char *)" ", tmp___3, 2400, size, max_size, inode->i_size); } else { } if ((((cap->issued & ~ newcaps) & 1024) != 0 && (newcaps & 32768) == 0) && ci->i_wrbuffer_ref == 0) { tmp___5 = try_nonblocking_invalidate(inode); if (tmp___5 == 0) { revoked_rdcache = 1; } else if (ci->i_rdcache_revoking != ci->i_rdcache_gen) { queue_invalidate = 1; ci->i_rdcache_revoking = ci->i_rdcache_gen; } else { } } else { } issued = __ceph_caps_issued(ci, & implemented); tmp___6 = __ceph_caps_dirty(ci); issued = (tmp___6 | implemented) | issued; cap->cap_gen = session->s_cap_gen; __check_cap_issue(ci, cap, (unsigned int )newcaps); if ((issued & 8) == 0) { inode->i_mode = (umode_t )grant->mode; inode->i_uid = grant->uid; inode->i_gid = grant->gid; descriptor___1.modname = "ceph"; descriptor___1.function = "handle_cap_grant"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : %p mode 0%o uid.gid %d.%d\n"; descriptor___1.lineno = 2436U; descriptor___1.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : %p mode 0%o uid.gid %d.%d\n", 3, (char *)" ", tmp___7, 2436, inode, (int )inode->i_mode, inode->i_uid, inode->i_gid); } else { } } else { } if ((issued & 32) == 0) { set_nlink(inode, grant->nlink); } else { } if ((issued & 128) == 0 && grant->xattr_len != 0U) { len = (int )grant->xattr_len; version = grant->xattr_version; if (ci->i_xattrs.version < version) { descriptor___2.modname = "ceph"; descriptor___2.function = "handle_cap_grant"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : got new xattrs v%llu on %p len %d\n"; descriptor___2.lineno = 2448U; descriptor___2.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : got new xattrs v%llu on %p len %d\n", 3, (char *)" ", tmp___9, 2448, version, inode, len); } else { } if ((unsigned long )ci->i_xattrs.blob != (unsigned long )((struct ceph_buffer *)0)) { ceph_buffer_put(ci->i_xattrs.blob); } else { } ci->i_xattrs.blob = ceph_buffer_get(xattr_buf); ci->i_xattrs.version = version; } else { } } else { } ceph_fill_file_size(inode, issued, grant->truncate_seq, grant->truncate_size, size); ceph_decode_timespec(& mtime, (struct ceph_timespec const *)(& grant->mtime)); ceph_decode_timespec(& atime, (struct ceph_timespec const *)(& grant->atime)); ceph_decode_timespec(& ctime, (struct ceph_timespec const *)(& grant->ctime)); ceph_fill_file_time(inode, issued, (u64 )grant->time_warp_seq, & ctime, & mtime, & atime); if ((unsigned long )ci->i_auth_cap == (unsigned long )cap && ci->i_max_size != max_size) { descriptor___3.modname = "ceph"; descriptor___3.function = "handle_cap_grant"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : max_size %lld -> %llu\n"; descriptor___3.lineno = 2469U; descriptor___3.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : max_size %lld -> %llu\n", 3, (char *)" ", tmp___11, 2469, ci->i_max_size, max_size); } else { } ci->i_max_size = max_size; if (ci->i_wanted_max_size <= max_size) { ci->i_wanted_max_size = 0ULL; ci->i_requested_max_size = 0ULL; } else { } wake = 1; } else { } wanted = __ceph_caps_wanted(ci); used = __ceph_caps_used(ci); dirty = __ceph_caps_dirty(ci); descriptor___4.modname = "ceph"; descriptor___4.function = "handle_cap_grant"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : my wanted = %s, used = %s, dirty %s\n"; descriptor___4.lineno = 2485U; descriptor___4.flags = 0U; tmp___17 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___17 != 0L) { tmp___13 = ceph_cap_string(dirty); tmp___14 = ceph_cap_string(used); tmp___15 = ceph_cap_string(wanted); tmp___16 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : my wanted = %s, used = %s, dirty %s\n", 3, (char *)" ", tmp___16, 2485, tmp___15, tmp___14, tmp___13); } else { } if ((__le32 )wanted != grant->wanted) { descriptor___5.modname = "ceph"; descriptor___5.function = "handle_cap_grant"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : mds wanted %s -> %s\n"; descriptor___5.lineno = 2489U; descriptor___5.flags = 0U; tmp___21 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___21 != 0L) { tmp___18 = ceph_cap_string(wanted); tmp___19 = ceph_cap_string((int )grant->wanted); tmp___20 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : mds wanted %s -> %s\n", 3, (char *)" ", tmp___20, 2489, tmp___19, tmp___18); } else { } grant->wanted = (unsigned int )wanted; } else { } cap->seq = (u32 )seq; ci->i_layout = grant->layout; if ((cap->issued & ~ newcaps) != 0) { revoking = cap->issued & ~ newcaps; descriptor___6.modname = "ceph"; descriptor___6.function = "handle_cap_grant"; descriptor___6.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___6.format = "%.*s %12.12s:%-4d : revocation: %s -> %s (revoking %s)\n"; descriptor___6.lineno = 2505U; descriptor___6.flags = 0U; tmp___26 = ldv__builtin_expect((long )descriptor___6.flags & 1L, 0L); if (tmp___26 != 0L) { tmp___22 = ceph_cap_string(revoking); tmp___23 = ceph_cap_string(newcaps); tmp___24 = ceph_cap_string(cap->issued); tmp___25 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___6, "ceph: %.*s %12.12s:%-4d : revocation: %s -> %s (revoking %s)\n", 3, (char *)" ", tmp___25, 2505, tmp___24, tmp___23, tmp___22); } else { } if (((revoking & used) & 8192) != 0) { writeback = 1; } else if ((revoking == 1024 && (newcaps & 32768) == 0) && queue_invalidate != 0) { } else if ((unsigned long )ci->i_auth_cap == (unsigned long )cap) { check_caps = 1; } else { check_caps = 2; } cap->issued = newcaps; cap->implemented = cap->implemented | newcaps; } else if (cap->issued == newcaps) { descriptor___7.modname = "ceph"; descriptor___7.function = "handle_cap_grant"; descriptor___7.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___7.format = "%.*s %12.12s:%-4d : caps unchanged: %s -> %s\n"; descriptor___7.lineno = 2520U; descriptor___7.flags = 0U; tmp___30 = ldv__builtin_expect((long )descriptor___7.flags & 1L, 0L); if (tmp___30 != 0L) { tmp___27 = ceph_cap_string(newcaps); tmp___28 = ceph_cap_string(cap->issued); tmp___29 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___7, "ceph: %.*s %12.12s:%-4d : caps unchanged: %s -> %s\n", 3, (char *)" ", tmp___29, 2520, tmp___28, tmp___27); } else { } } else { descriptor___8.modname = "ceph"; descriptor___8.function = "handle_cap_grant"; descriptor___8.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___8.format = "%.*s %12.12s:%-4d : grant: %s -> %s\n"; descriptor___8.lineno = 2523U; descriptor___8.flags = 0U; tmp___34 = ldv__builtin_expect((long )descriptor___8.flags & 1L, 0L); if (tmp___34 != 0L) { tmp___31 = ceph_cap_string(newcaps); tmp___32 = ceph_cap_string(cap->issued); tmp___33 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___8, "ceph: %.*s %12.12s:%-4d : grant: %s -> %s\n", 3, (char *)" ", tmp___33, 2523, tmp___32, tmp___31); } else { } cap->issued = newcaps; cap->implemented = cap->implemented | newcaps; wake = 1; } tmp___35 = ldv__builtin_expect((cap->issued & ~ cap->implemented) != 0, 0L); if (tmp___35 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (2530), "i" (12UL)); ldv_29689: ; goto ldv_29689; } else { } spin_unlock(& ci->i_ceph_lock); if (writeback != 0) { ceph_queue_writeback(inode); } else { } if (queue_invalidate != 0) { ceph_queue_invalidate(inode); } else { } if (wake != 0) { __wake_up(& ci->i_cap_wq, 3U, 0, 0); } else { } if (check_caps == 1) { ceph_check_caps(ci, 3, session); } else if (check_caps == 2) { ceph_check_caps(ci, 1, session); } else { ldv_mutex_unlock_120(& session->s_mutex); } return; } } static void handle_cap_flush_ack(struct inode *inode , u64 flush_tid , struct ceph_mds_caps *m , struct ceph_mds_session *session , struct ceph_cap *cap ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp___0 ; unsigned int seq ; int dirty ; int cleaned ; int drop ; int i ; struct _ddebug descriptor ; char const *tmp___1 ; char const *tmp___2 ; char const *tmp___3 ; char const *tmp___4 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___0 ; struct list_head const *__mptr ; char const *tmp___7 ; long tmp___8 ; int tmp___9 ; struct _ddebug descriptor___1 ; char const *tmp___10 ; long tmp___11 ; struct _ddebug descriptor___2 ; char const *tmp___12 ; long tmp___13 ; int tmp___14 ; long tmp___15 ; long tmp___16 ; int tmp___17 ; long tmp___18 ; { tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_sb_to_client(inode->i_sb); mdsc = tmp___0->mdsc; seq = m->seq; dirty = (int )m->dirty; cleaned = 0; drop = 0; i = 0; goto ldv_29705; ldv_29704: ; if ((dirty >> i) & 1 && (u64 )ci->i_cap_flush_tid[i] == flush_tid) { cleaned = (1 << i) | cleaned; } else { } i = i + 1; ldv_29705: ; if (i <= 21) { goto ldv_29704; } else { } descriptor.modname = "ceph"; descriptor.function = "handle_cap_flush_ack"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_cap_flush_ack inode %p mds%d seq %d on %s cleaned %s, flushing %s -> %s\n"; descriptor.lineno = 2581U; descriptor.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___1 = ceph_cap_string((int )(ci->i_flushing_caps & (unsigned int )(~ cleaned))); tmp___2 = ceph_cap_string((int )ci->i_flushing_caps); tmp___3 = ceph_cap_string(cleaned); tmp___4 = ceph_cap_string(dirty); tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_cap_flush_ack inode %p mds%d seq %d on %s cleaned %s, flushing %s -> %s\n", 3, (char *)" ", tmp___5, 2581, inode, session->s_mds, seq, tmp___4, tmp___3, tmp___2, tmp___1); } else { } if (ci->i_flushing_caps == (ci->i_flushing_caps & (unsigned int )(~ cleaned))) { goto out; } else { } ci->i_flushing_caps = ci->i_flushing_caps & (unsigned int )(~ cleaned); spin_lock(& mdsc->cap_dirty_lock); if (ci->i_flushing_caps == 0U) { list_del_init(& ci->i_flushing_item); tmp___9 = list_empty((struct list_head const *)(& session->s_cap_flushing)); if (tmp___9 == 0) { descriptor___0.modname = "ceph"; descriptor___0.function = "handle_cap_flush_ack"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mds%d still flushing cap on %p\n"; descriptor___0.lineno = 2596U; descriptor___0.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___8 != 0L) { __mptr = (struct list_head const *)session->s_cap_flushing.next; tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mds%d still flushing cap on %p\n", 3, (char *)" ", tmp___7, 2596, session->s_mds, & ((struct ceph_inode_info *)__mptr + 0xfffffffffffffe10UL)->vfs_inode); } else { } } else { } mdsc->num_cap_flushing = mdsc->num_cap_flushing - 1; __wake_up(& mdsc->cap_flushing_wq, 3U, 0, 0); descriptor___1.modname = "ceph"; descriptor___1.function = "handle_cap_flush_ack"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : inode %p now !flushing\n"; descriptor___1.lineno = 2599U; descriptor___1.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : inode %p now !flushing\n", 3, (char *)" ", tmp___10, 2599, inode); } else { } if (ci->i_dirty_caps == 0U) { descriptor___2.modname = "ceph"; descriptor___2.function = "handle_cap_flush_ack"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : inode %p now clean\n"; descriptor___2.lineno = 2602U; descriptor___2.flags = 0U; tmp___13 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___13 != 0L) { tmp___12 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : inode %p now clean\n", 3, (char *)" ", tmp___12, 2602, inode); } else { } tmp___14 = list_empty((struct list_head const *)(& ci->i_dirty_item)); tmp___15 = ldv__builtin_expect(tmp___14 == 0, 0L); if (tmp___15 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (2603), "i" (12UL)); ldv_29715: ; goto ldv_29715; } else { } drop = 1; if (ci->i_wrbuffer_ref_head == 0) { tmp___16 = ldv__builtin_expect((unsigned long )ci->i_head_snapc == (unsigned long )((struct ceph_snap_context *)0), 0L); if (tmp___16 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (2606), "i" (12UL)); ldv_29716: ; goto ldv_29716; } else { } ceph_put_snap_context(ci->i_head_snapc); ci->i_head_snapc = 0; } else { } } else { tmp___17 = list_empty((struct list_head const *)(& ci->i_dirty_item)); tmp___18 = ldv__builtin_expect(tmp___17 != 0, 0L); if (tmp___18 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (2611), "i" (12UL)); ldv_29717: ; goto ldv_29717; } else { } } } else { } spin_unlock(& mdsc->cap_dirty_lock); __wake_up(& ci->i_cap_wq, 3U, 0, 0); out: spin_unlock(& ci->i_ceph_lock); if (drop != 0) { iput(inode); } else { } return; } } static void handle_cap_flushsnap_ack(struct inode *inode , u64 flush_tid , struct ceph_mds_caps *m , struct ceph_mds_session *session ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; u64 follows ; struct ceph_cap_snap *capsnap ; int drop ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct list_head const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; int __ret_warn_on ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___2 ; char const *tmp___7 ; long tmp___8 ; struct list_head const *__mptr___0 ; { tmp = ceph_inode(inode); ci = tmp; follows = m->snap_follows; drop = 0; descriptor.modname = "ceph"; descriptor.function = "handle_cap_flushsnap_ack"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_cap_flushsnap_ack inode %p ci %p mds%d follows %lld\n"; descriptor.lineno = 2639U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_cap_flushsnap_ack inode %p ci %p mds%d follows %lld\n", 3, (char *)" ", tmp___0, 2639, inode, ci, session->s_mds, follows); } else { } spin_lock(& ci->i_ceph_lock); __mptr = (struct list_head const *)ci->i_cap_snaps.next; capsnap = (struct ceph_cap_snap *)__mptr + 0xfffffffffffffff0UL; goto ldv_29741; ldv_29740: ; if (capsnap->follows == follows) { if (capsnap->flush_tid != flush_tid) { descriptor___0.modname = "ceph"; descriptor___0.function = "handle_cap_flushsnap_ack"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : cap_snap %p follows %lld tid %lld != %lld\n"; descriptor___0.lineno = 2647U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : cap_snap %p follows %lld tid %lld != %lld\n", 3, (char *)" ", tmp___2, 2647, capsnap, follows, flush_tid, capsnap->flush_tid); } else { } goto ldv_29735; } else { } __ret_warn_on = capsnap->dirty_pages != 0 || capsnap->writing != 0; tmp___4 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 2650); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); descriptor___1.modname = "ceph"; descriptor___1.function = "handle_cap_flushsnap_ack"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : removing %p cap_snap %p follows %lld\n"; descriptor___1.lineno = 2652U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : removing %p cap_snap %p follows %lld\n", 3, (char *)" ", tmp___5, 2652, inode, capsnap, follows); } else { } ceph_put_snap_context(capsnap->context); list_del(& capsnap->ci_item); list_del(& capsnap->flushing_item); ceph_put_cap_snap(capsnap); drop = 1; goto ldv_29735; } else { descriptor___2.modname = "ceph"; descriptor___2.function = "handle_cap_flushsnap_ack"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : skipping cap_snap %p follows %lld\n"; descriptor___2.lineno = 2661U; descriptor___2.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : skipping cap_snap %p follows %lld\n", 3, (char *)" ", tmp___7, 2661, capsnap, capsnap->follows); } else { } } __mptr___0 = (struct list_head const *)capsnap->ci_item.next; capsnap = (struct ceph_cap_snap *)__mptr___0 + 0xfffffffffffffff0UL; ldv_29741: ; if ((unsigned long )(& capsnap->ci_item) != (unsigned long )(& ci->i_cap_snaps)) { goto ldv_29740; } else { } ldv_29735: spin_unlock(& ci->i_ceph_lock); if (drop != 0) { iput(inode); } else { } return; } } static void handle_cap_trunc(struct inode *inode , struct ceph_mds_caps *trunc , struct ceph_mds_session *session ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int mds ; int seq ; u32 truncate_seq ; u64 truncate_size ; u64 size ; int implemented ; int dirty ; int tmp___0 ; int issued ; struct ceph_inode_info *tmp___1 ; int tmp___2 ; int queue_trunc ; struct _ddebug descriptor ; char const *tmp___3 ; long tmp___4 ; { tmp = ceph_inode(inode); ci = tmp; mds = session->s_mds; seq = (int )trunc->seq; truncate_seq = trunc->truncate_seq; truncate_size = trunc->truncate_size; size = trunc->size; implemented = 0; tmp___0 = __ceph_caps_dirty(ci); dirty = tmp___0; tmp___1 = ceph_inode(inode); tmp___2 = __ceph_caps_issued(tmp___1, & implemented); issued = tmp___2; queue_trunc = 0; issued = (implemented | dirty) | issued; descriptor.modname = "ceph"; descriptor.function = "handle_cap_trunc"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_cap_trunc inode %p mds%d seq %d to %lld seq %d\n"; descriptor.lineno = 2693U; descriptor.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_cap_trunc inode %p mds%d seq %d to %lld seq %d\n", 3, (char *)" ", tmp___3, 2693, inode, mds, seq, truncate_size, truncate_seq); } else { } queue_trunc = ceph_fill_file_size(inode, issued, truncate_seq, truncate_size, size); spin_unlock(& ci->i_ceph_lock); if (queue_trunc != 0) { ceph_queue_vmtruncate(inode); } else { } return; } } static void handle_cap_export(struct inode *inode , struct ceph_mds_caps *ex , struct ceph_mds_session *session , int *open_target_sessions ) { struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___0 ; int mds ; unsigned int mseq ; struct ceph_cap *cap ; struct ceph_cap *t ; struct rb_node *p ; int remember ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct rb_node const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; __s32 tmp___5 ; struct _ddebug descriptor___1 ; char const *tmp___6 ; long tmp___7 ; int tmp___8 ; { tmp = ceph_inode_to_client(inode); mdsc = tmp->mdsc; tmp___0 = ceph_inode(inode); ci = tmp___0; mds = session->s_mds; mseq = ex->migrate_seq; cap = 0; remember = 1; descriptor.modname = "ceph"; descriptor.function = "handle_cap_export"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_cap_export inode %p ci %p mds%d mseq %d\n"; descriptor.lineno = 2723U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_cap_export inode %p ci %p mds%d mseq %d\n", 3, (char *)" ", tmp___1, 2723, inode, ci, mds, mseq); } else { } spin_lock(& ci->i_ceph_lock); p = rb_first((struct rb_root const *)(& ci->i_caps)); goto ldv_29779; ldv_29778: __mptr = (struct rb_node const *)p; t = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; tmp___5 = ceph_seq_cmp(t->mseq, mseq); if (tmp___5 > 0) { descriptor___0.modname = "ceph"; descriptor___0.function = "handle_cap_export"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : higher mseq on cap from mds%d\n"; descriptor___0.lineno = 2732U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : higher mseq on cap from mds%d\n", 3, (char *)" ", tmp___3, 2732, (t->session)->s_mds); } else { } remember = 0; } else { } if ((t->session)->s_mds == mds) { cap = t; } else { } p = rb_next((struct rb_node const *)p); ldv_29779: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29778; } else { } if ((unsigned long )cap != (unsigned long )((struct ceph_cap *)0)) { if (remember != 0) { ci->i_cap_exporting_mds = mds; ci->i_cap_exporting_mseq = mseq; ci->i_cap_exporting_issued = (unsigned int )cap->issued; *open_target_sessions = 1; spin_lock(& mdsc->cap_dirty_lock); tmp___8 = list_empty((struct list_head const *)(& ci->i_dirty_item)); if (tmp___8 == 0) { descriptor___1.modname = "ceph"; descriptor___1.function = "handle_cap_export"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : moving %p to cap_dirty_migrating\n"; descriptor___1.lineno = 2759U; descriptor___1.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : moving %p to cap_dirty_migrating\n", 3, (char *)" ", tmp___6, 2759, inode); } else { } list_move(& ci->i_dirty_item, & mdsc->cap_dirty_migrating); } else { } spin_unlock(& mdsc->cap_dirty_lock); } else { } __ceph_remove_cap(cap); } else { } spin_unlock(& ci->i_ceph_lock); return; } } static void handle_cap_import(struct ceph_mds_client *mdsc , struct inode *inode , struct ceph_mds_caps *im , struct ceph_mds_session *session , void *snaptrace , int snaptrace_len ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int mds ; unsigned int issued ; unsigned int wanted ; unsigned int seq ; unsigned int mseq ; u64 realmino ; u64 cap_id ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; int tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; __s32 tmp___7 ; { tmp = ceph_inode(inode); ci = tmp; mds = session->s_mds; issued = im->caps; wanted = im->wanted; seq = im->seq; mseq = im->migrate_seq; realmino = im->realm; cap_id = im->cap_id; if (ci->i_cap_exporting_mds >= 0) { tmp___7 = ceph_seq_cmp(ci->i_cap_exporting_mseq, mseq); if (tmp___7 < 0) { descriptor.modname = "ceph"; descriptor.function = "handle_cap_import"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_cap_import inode %p ci %p mds%d mseq %d - cleared exporting from mds%d\n"; descriptor.lineno = 2797U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_cap_import inode %p ci %p mds%d mseq %d - cleared exporting from mds%d\n", 3, (char *)" ", tmp___0, 2797, inode, ci, mds, mseq, ci->i_cap_exporting_mds); } else { } ci->i_cap_exporting_issued = 0U; ci->i_cap_exporting_mseq = 0U; ci->i_cap_exporting_mds = -1; spin_lock(& mdsc->cap_dirty_lock); tmp___4 = list_empty((struct list_head const *)(& ci->i_dirty_item)); if (tmp___4 == 0) { descriptor___0.modname = "ceph"; descriptor___0.function = "handle_cap_import"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : moving %p back to cap_dirty\n"; descriptor___0.lineno = 2804U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : moving %p back to cap_dirty\n", 3, (char *)" ", tmp___2, 2804, inode); } else { } list_move(& ci->i_dirty_item, & mdsc->cap_dirty); } else { } spin_unlock(& mdsc->cap_dirty_lock); } else { goto _L; } } else { _L: /* CIL Label */ descriptor___1.modname = "ceph"; descriptor___1.function = "handle_cap_import"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : handle_cap_import inode %p ci %p mds%d mseq %d\n"; descriptor___1.lineno = 2810U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : handle_cap_import inode %p ci %p mds%d mseq %d\n", 3, (char *)" ", tmp___5, 2810, inode, ci, mds, mseq); } else { } } down_write(& mdsc->snap_rwsem); ceph_update_snap_trace(mdsc, snaptrace, snaptrace + (unsigned long )snaptrace_len, 0); downgrade_write(& mdsc->snap_rwsem); ceph_add_cap(inode, session, cap_id, -1, issued, wanted, seq, mseq, realmino, 1, 0); kick_flushing_inode_caps(mdsc, session, inode); up_read(& mdsc->snap_rwsem); spin_lock(& ci->i_ceph_lock); ci->i_wanted_max_size = 0ULL; ci->i_requested_max_size = 0ULL; spin_unlock(& ci->i_ceph_lock); return; } } void ceph_handle_caps(struct ceph_mds_session *session , struct ceph_msg *msg ) { struct ceph_mds_client *mdsc ; struct super_block *sb ; struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_cap *cap ; struct ceph_mds_caps *h ; int mds ; int op ; u32 seq ; u32 mseq ; struct ceph_vino vino ; u64 cap_id ; u64 size ; u64 max_size ; u64 tid ; void *snaptrace ; size_t snaptrace_len ; void *flock ; u32 flock_len ; int open_target_sessions ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; void *p ; void *end ; int tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; char const *tmp___6 ; long tmp___7 ; struct _ddebug descriptor___2 ; char const *tmp___8 ; long tmp___9 ; struct ceph_inode_info *tmp___10 ; struct _ddebug descriptor___3 ; u64 tmp___11 ; u64 tmp___12 ; char const *tmp___13 ; long tmp___14 ; char const *tmp___15 ; { mdsc = session->s_mdsc; sb = (mdsc->fsc)->sb; mds = session->s_mds; open_target_sessions = 0; descriptor.modname = "ceph"; descriptor.function = "ceph_handle_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_caps from mds%d\n"; descriptor.lineno = 2858U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_caps from mds%d\n", 3, (char *)" ", tmp, 2858, mds); } else { } tid = msg->hdr.tid; if (msg->front.iov_len <= 175UL) { goto bad; } else { } h = (struct ceph_mds_caps *)msg->front.iov_base; op = (int )h->op; vino.ino = h->ino; vino.snap = 0xfffffffffffffffeULL; cap_id = h->cap_id; seq = h->seq; mseq = h->migrate_seq; size = h->size; max_size = h->max_size; snaptrace = (void *)h + 1U; snaptrace_len = (size_t )h->snap_trace_len; if ((unsigned int )msg->hdr.version > 1U) { p = snaptrace + snaptrace_len; end = msg->front.iov_base + msg->front.iov_len; tmp___1 = ceph_has_room(& p, end, 4UL); tmp___2 = ldv__builtin_expect(tmp___1 != 0, 1L); if (tmp___2 == 0L) { goto bad; } else { } flock_len = ceph_decode_32(& p); flock = p; } else { flock = 0; flock_len = 0U; } ldv_mutex_lock_121(& session->s_mutex); session->s_seq = session->s_seq + 1ULL; descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_handle_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mds%d seq %lld cap seq %u\n"; descriptor___0.lineno = 2892U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mds%d seq %lld cap seq %u\n", 3, (char *)" ", tmp___3, 2892, session->s_mds, session->s_seq, seq); } else { } inode = ceph_find_inode(sb, vino); ci = ceph_inode(inode); descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_handle_caps"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : op %s ino %llx.%llx inode %p\n"; descriptor___1.lineno = 2898U; descriptor___1.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___5 = ceph_cap_op_name(op); tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : op %s ino %llx.%llx inode %p\n", 3, (char *)" ", tmp___6, 2898, tmp___5, vino.ino, vino.snap, inode); } else { } if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_handle_caps"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : i don\'t have ino %llx\n"; descriptor___2.lineno = 2900U; descriptor___2.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : i don\'t have ino %llx\n", 3, (char *)" ", tmp___8, 2900, vino.ino); } else { } if (op == 4) { __queue_cap_release(session, vino.ino, cap_id, mseq, seq); } else { } goto flush_cap_releases; } else { } switch (op) { case 10: handle_cap_flushsnap_ack(inode, tid, h, session); goto done; case 3: handle_cap_export(inode, h, session, & open_target_sessions); goto done; case 4: handle_cap_import(mdsc, inode, h, session, snaptrace, (int )snaptrace_len); } spin_lock(& ci->i_ceph_lock); tmp___10 = ceph_inode(inode); cap = __get_cap_for_mds(tmp___10, mds); if ((unsigned long )cap == (unsigned long )((struct ceph_cap *)0)) { descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_handle_caps"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : no cap on %p ino %llx.%llx from mds%d\n"; descriptor___3.lineno = 2928U; descriptor___3.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___11 = ceph_snap(inode); tmp___12 = ceph_ino(inode); tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : no cap on %p ino %llx.%llx from mds%d\n", 3, (char *)" ", tmp___13, 2928, inode, tmp___12, tmp___11, mds); } else { } spin_unlock(& ci->i_ceph_lock); goto flush_cap_releases; } else { } switch (op) { case 1: ; case 0: ; case 4: handle_cap_grant(inode, h, session, cap, msg->middle); goto done_unlocked; case 8: handle_cap_flush_ack(inode, tid, h, session, cap); goto ldv_29845; case 2: handle_cap_trunc(inode, h, session); goto ldv_29845; default: spin_unlock(& ci->i_ceph_lock); tmp___15 = ceph_cap_op_name(op); printk("\vceph: ceph_handle_caps: unknown cap op %d %s\n", op, tmp___15); } ldv_29845: ; goto done; flush_cap_releases: ceph_add_cap_releases(mdsc, session); ceph_send_cap_releases(mdsc, session); done: ldv_mutex_unlock_122(& session->s_mutex); done_unlocked: ; if ((unsigned long )inode != (unsigned long )((struct inode *)0)) { iput(inode); } else { } if (open_target_sessions != 0) { ceph_mdsc_open_export_target_sessions(mdsc, session); } else { } return; bad: printk("\vceph: ceph_handle_caps: corrupt message\n"); ceph_msg_dump(msg); return; } } void ceph_check_delayed_caps(struct ceph_mds_client *mdsc ) { struct ceph_inode_info *ci ; int flags ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; int tmp___1 ; struct list_head const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; { flags = 1; descriptor.modname = "ceph"; descriptor.function = "ceph_check_delayed_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : check_delayed_caps\n"; descriptor.lineno = 2989U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : check_delayed_caps\n", 3, (char *)" ", tmp, 2989); } else { } ldv_29865: spin_lock(& mdsc->cap_delay_lock); tmp___1 = list_empty((struct list_head const *)(& mdsc->cap_delay_list)); if (tmp___1 != 0) { goto ldv_29855; } else { } __mptr = (struct list_head const *)mdsc->cap_delay_list.next; ci = (struct ceph_inode_info *)__mptr + 0xfffffffffffffd60UL; if ((ci->i_ceph_flags & 8U) == 0U && (long )jiffies - (long )ci->i_hold_caps_max < 0L) { goto ldv_29855; } else { } list_del_init(& ci->i_cap_delay_list); spin_unlock(& mdsc->cap_delay_lock); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_check_delayed_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : check_delayed_caps on %p\n"; descriptor___0.lineno = 3002U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : check_delayed_caps on %p\n", 3, (char *)" ", tmp___2, 3002, & ci->vfs_inode); } else { } ceph_check_caps(ci, flags, 0); goto ldv_29865; ldv_29855: spin_unlock(& mdsc->cap_delay_lock); return; } } void ceph_flush_dirty_caps(struct ceph_mds_client *mdsc ) { struct ceph_inode_info *ci ; struct inode *inode ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; struct _ddebug descriptor___1 ; char const *tmp___4 ; long tmp___5 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_flush_dirty_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : flush_dirty_caps\n"; descriptor.lineno = 3016U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : flush_dirty_caps\n", 3, (char *)" ", tmp, 3016); } else { } spin_lock(& mdsc->cap_dirty_lock); goto ldv_29877; ldv_29876: __mptr = (struct list_head const *)mdsc->cap_dirty.next; ci = (struct ceph_inode_info *)__mptr + 0xfffffffffffffe20UL; inode = & ci->vfs_inode; ihold(inode); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_flush_dirty_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : flush_dirty_caps %p\n"; descriptor___0.lineno = 3023U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : flush_dirty_caps %p\n", 3, (char *)" ", tmp___1, 3023, inode); } else { } spin_unlock(& mdsc->cap_dirty_lock); ceph_check_caps(ci, 5, 0); iput(inode); spin_lock(& mdsc->cap_dirty_lock); ldv_29877: tmp___3 = list_empty((struct list_head const *)(& mdsc->cap_dirty)); if (tmp___3 == 0) { goto ldv_29876; } else { } spin_unlock(& mdsc->cap_dirty_lock); descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_flush_dirty_caps"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : flush_dirty_caps done\n"; descriptor___1.lineno = 3030U; descriptor___1.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : flush_dirty_caps done\n", 3, (char *)" ", tmp___4, 3030); } else { } return; } } void ceph_put_fmode(struct ceph_inode_info *ci , int fmode ) { struct inode *inode ; int last ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; long tmp___1 ; { inode = & ci->vfs_inode; last = 0; spin_lock(& ci->i_ceph_lock); descriptor.modname = "ceph"; descriptor.function = "ceph_put_fmode"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : put_fmode %p fmode %d %d -> %d\n"; descriptor.lineno = 3045U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : put_fmode %p fmode %d %d -> %d\n", 3, (char *)" ", tmp, 3045, inode, fmode, ci->i_nr_by_mode[fmode], ci->i_nr_by_mode[fmode] + -1); } else { } tmp___1 = ldv__builtin_expect(ci->i_nr_by_mode[fmode] == 0, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"), "i" (3046), "i" (12UL)); ldv_29888: ; goto ldv_29888; } else { } ci->i_nr_by_mode[fmode] = ci->i_nr_by_mode[fmode] - 1; if (ci->i_nr_by_mode[fmode] == 0) { last = last + 1; } else { } spin_unlock(& ci->i_ceph_lock); if (last != 0 && ci->i_vino.snap == 0xfffffffffffffffeULL) { ceph_check_caps(ci, 0, 0); } else { } return; } } int ceph_encode_inode_release(void **p , struct inode *inode , int mds , int drop , int unless , int force ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_cap *cap ; struct ceph_mds_request_release *rel ; int used ; int dirty ; int ret ; struct _ddebug descriptor ; char const *tmp___0 ; char const *tmp___1 ; char const *tmp___2 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___0 ; char const *tmp___5 ; char const *tmp___6 ; char const *tmp___7 ; long tmp___8 ; int wanted ; int tmp___9 ; struct _ddebug descriptor___1 ; char const *tmp___10 ; char const *tmp___11 ; char const *tmp___12 ; char const *tmp___13 ; long tmp___14 ; struct _ddebug descriptor___2 ; char const *tmp___15 ; char const *tmp___16 ; long tmp___17 ; struct _ddebug descriptor___3 ; char const *tmp___18 ; char const *tmp___19 ; long tmp___20 ; int tmp___21 ; { tmp = ceph_inode(inode); ci = tmp; rel = (struct ceph_mds_request_release *)*p; ret = 0; spin_lock(& ci->i_ceph_lock); used = __ceph_caps_used(ci); dirty = __ceph_caps_dirty(ci); descriptor.modname = "ceph"; descriptor.function = "ceph_encode_inode_release"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : encode_inode_release %p mds%d used|dirty %s drop %s unless %s\n"; descriptor.lineno = 3078U; descriptor.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___0 = ceph_cap_string(unless); tmp___1 = ceph_cap_string(drop); tmp___2 = ceph_cap_string(used | dirty); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : encode_inode_release %p mds%d used|dirty %s drop %s unless %s\n", 3, (char *)" ", tmp___3, 3078, inode, mds, tmp___2, tmp___1, tmp___0); } else { } drop = ~ (used | dirty) & drop; cap = __get_cap_for_mds(ci, mds); if ((unsigned long )cap != (unsigned long )((struct ceph_cap *)0)) { tmp___21 = __cap_is_valid(cap); if (tmp___21 != 0) { if (force != 0 || ((cap->issued & drop) != 0 && (cap->issued & unless) == 0)) { if ((cap->issued & drop) != 0 && (cap->issued & unless) == 0) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_encode_inode_release"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : encode_inode_release %p cap %p %s -> %s\n"; descriptor___0.lineno = 3093U; descriptor___0.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___5 = ceph_cap_string(cap->issued & ~ drop); tmp___6 = ceph_cap_string(cap->issued); tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : encode_inode_release %p cap %p %s -> %s\n", 3, (char *)" ", tmp___7, 3093, inode, cap, tmp___6, tmp___5); } else { } cap->issued = cap->issued & ~ drop; cap->implemented = cap->implemented & ~ drop; if ((ci->i_ceph_flags & 4U) != 0U) { tmp___9 = __ceph_caps_wanted(ci); wanted = tmp___9; descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_encode_inode_release"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : wanted %s -> %s (act %s)\n"; descriptor___1.lineno = 3102U; descriptor___1.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___10 = ceph_cap_string(wanted); tmp___11 = ceph_cap_string(cap->mds_wanted & ~ wanted); tmp___12 = ceph_cap_string(cap->mds_wanted); tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : wanted %s -> %s (act %s)\n", 3, (char *)" ", tmp___13, 3102, tmp___12, tmp___11, tmp___10); } else { } cap->mds_wanted = cap->mds_wanted & wanted; } else { } } else { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_encode_inode_release"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : encode_inode_release %p cap %p %s (force)\n"; descriptor___2.lineno = 3108U; descriptor___2.flags = 0U; tmp___17 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___17 != 0L) { tmp___15 = ceph_cap_string(cap->issued); tmp___16 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : encode_inode_release %p cap %p %s (force)\n", 3, (char *)" ", tmp___16, 3108, inode, cap, tmp___15); } else { } } rel->ino = ceph_ino(inode); rel->cap_id = cap->cap_id; rel->seq = cap->seq; rel->issue_seq = cap->issue_seq; rel->mseq = cap->mseq; rel->caps = (unsigned int )cap->issued; rel->wanted = (unsigned int )cap->mds_wanted; rel->dname_len = 0U; rel->dname_seq = 0U; *p = *p + 44UL; ret = 1; } else { descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_encode_inode_release"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : encode_inode_release %p cap %p %s\n"; descriptor___3.lineno = 3124U; descriptor___3.flags = 0U; tmp___20 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___20 != 0L) { tmp___18 = ceph_cap_string(cap->issued); tmp___19 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : encode_inode_release %p cap %p %s\n", 3, (char *)" ", tmp___19, 3124, inode, cap, tmp___18); } else { } } } else { } } else { } spin_unlock(& ci->i_ceph_lock); return (ret); } } int ceph_encode_dentry_release(void **p , struct dentry *dentry , int mds , int drop , int unless ) { struct inode *dir ; struct ceph_mds_request_release *rel ; struct ceph_dentry_info *di ; struct ceph_dentry_info *tmp ; int force ; int ret ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; size_t __len ; void *__ret ; { dir = (dentry->d_parent)->d_inode; rel = (struct ceph_mds_request_release *)*p; tmp = ceph_dentry(dentry); di = tmp; force = 0; spin_lock(& dentry->d_lock); if ((unsigned long )di->lease_session != (unsigned long )((struct ceph_mds_session *)0) && (di->lease_session)->s_mds == mds) { force = 1; } else { } spin_unlock(& dentry->d_lock); ret = ceph_encode_inode_release(p, dir, mds, drop, unless, force); spin_lock(& dentry->d_lock); if ((ret != 0 && (unsigned long )di->lease_session != (unsigned long )((struct ceph_mds_session *)0)) && (di->lease_session)->s_mds == mds) { descriptor.modname = "ceph"; descriptor.function = "ceph_encode_dentry_release"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : encode_dentry_release %p mds%d seq %d\n"; descriptor.lineno = 3156U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/caps.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : encode_dentry_release %p mds%d seq %d\n", 3, (char *)" ", tmp___0, 3156, dentry, mds, (int )di->lease_seq); } else { } rel->dname_len = dentry->d_name.ldv_11489.ldv_11487.len; __len = (size_t )dentry->d_name.ldv_11489.ldv_11487.len; __ret = memcpy(*p, (void const *)dentry->d_name.name, __len); *p = *p + (unsigned long )dentry->d_name.ldv_11489.ldv_11487.len; rel->dname_seq = di->lease_seq; __ceph_mdsc_drop_dentry_lease(dentry); } else { } spin_unlock(& dentry->d_lock); return (ret); } } void ldv_mutex_lock_103(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_104(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_105(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_106(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_107(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_108(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_109(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_110(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_111(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_112(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } int ldv_mutex_trylock_113(struct mutex *ldv_func_arg1 ) { ldv_func_ret_type___9 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = mutex_trylock(ldv_func_arg1); ldv_func_res = tmp; tmp___0 = ldv_mutex_trylock_s_mutex(ldv_func_arg1); return (tmp___0); return (ldv_func_res); } } void ldv_mutex_lock_114(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_115(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_116(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_117(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_118(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_i_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_119(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_i_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_120(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_121(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_122(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } __inline static __u64 __le64_to_cpup(__le64 const *p ) { { return ((__u64 )*p); } } __inline static void atomic_set(atomic_t *v , int i ) { { v->counter = i; return; } } void ldv_mutex_unlock_144(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_146(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_147(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_149(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_143(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_145(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_148(struct mutex *ldv_func_arg1 ) ; extern void sort(void * , size_t , size_t , int (*)(void const * , void const * ) , void (*)(void * , void * , int ) ) ; extern int down_write_trylock(struct rw_semaphore * ) ; extern void up_write(struct rw_semaphore * ) ; __inline static void *kmalloc_array(size_t n , size_t size , gfp_t flags ) { void *tmp ; { if (size != 0UL && 0xffffffffffffffffUL / size < n) { return (0); } else { } tmp = __kmalloc(n * size, flags); return (tmp); } } void *ldv_calloc(size_t nmemb , size_t size ) ; __inline static void *kcalloc(size_t n , size_t size , gfp_t flags ) { void *tmp ; { tmp = kmalloc_array(n, size, flags | 32768U); return (tmp); } } __inline static u64 get_unaligned_le64(void const *p ) { __u64 tmp ; { tmp = __le64_to_cpup((__le64 const *)p); return (tmp); } } extern struct inode *igrab(struct inode * ) ; char const *ceph_snap_op_name(int o ) ; void ceph_handle_snap(struct ceph_mds_client *mdsc , struct ceph_mds_session *session , struct ceph_msg *msg ) ; void ceph_queue_cap_snap(struct ceph_inode_info *ci ) ; void ceph_cleanup_empty_realms(struct ceph_mds_client *mdsc ) ; void ceph_get_snap_realm(struct ceph_mds_client *mdsc , struct ceph_snap_realm *realm ) { struct _ddebug descriptor ; int tmp ; int tmp___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_get_snap_realm"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : get_realm %p %d -> %d\n"; descriptor.lineno = 138U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp = atomic_read((atomic_t const *)(& realm->nref)); tmp___0 = atomic_read((atomic_t const *)(& realm->nref)); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : get_realm %p %d -> %d\n", 3, (char *)" ", tmp___1, 138, realm, tmp___0, tmp + 1); } else { } tmp___3 = atomic_read((atomic_t const *)(& realm->nref)); if (tmp___3 == 0) { spin_lock(& mdsc->snap_empty_lock); list_del_init(& realm->empty_item); spin_unlock(& mdsc->snap_empty_lock); } else { } atomic_inc(& realm->nref); return; } } static void __insert_snap_realm(struct rb_root *root , struct ceph_snap_realm *new ) { struct rb_node **p ; struct rb_node *parent ; struct ceph_snap_realm *r ; struct rb_node const *__mptr ; { p = & root->rb_node; parent = 0; r = 0; goto ldv_28840; ldv_28839: parent = *p; __mptr = (struct rb_node const *)parent; r = (struct ceph_snap_realm *)__mptr + 0xfffffffffffffff0UL; if (new->ino < r->ino) { p = & (*p)->rb_left; } else if (new->ino > r->ino) { p = & (*p)->rb_right; } else { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"), "i" (169), "i" (12UL)); ldv_28838: ; goto ldv_28838; } ldv_28840: ; if ((unsigned long )*p != (unsigned long )((struct rb_node *)0)) { goto ldv_28839; } else { } rb_link_node(& new->node, parent, p); rb_insert_color(& new->node, root); return; } } static struct ceph_snap_realm *ceph_create_snap_realm(struct ceph_mds_client *mdsc , u64 ino ) { struct ceph_snap_realm *realm ; void *tmp ; void *tmp___0 ; struct lock_class_key __key ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; { tmp = kzalloc(272UL, 80U); realm = (struct ceph_snap_realm *)tmp; if ((unsigned long )realm == (unsigned long )((struct ceph_snap_realm *)0)) { tmp___0 = ERR_PTR(-12L); return ((struct ceph_snap_realm *)tmp___0); } else { } atomic_set(& realm->nref, 0); realm->ino = ino; INIT_LIST_HEAD(& realm->children); INIT_LIST_HEAD(& realm->child_item); INIT_LIST_HEAD(& realm->empty_item); INIT_LIST_HEAD(& realm->dirty_item); INIT_LIST_HEAD(& realm->inodes_with_caps); spinlock_check(& realm->inodes_with_caps_lock); __raw_spin_lock_init(& realm->inodes_with_caps_lock.ldv_5961.rlock, "&(&realm->inodes_with_caps_lock)->rlock", & __key); __insert_snap_realm(& mdsc->snap_realms, realm); descriptor.modname = "ceph"; descriptor.function = "ceph_create_snap_realm"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : create_snap_realm %llx %p\n"; descriptor.lineno = 200U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : create_snap_realm %llx %p\n", 3, (char *)" ", tmp___1, 200, realm->ino, realm); } else { } return (realm); } } struct ceph_snap_realm *ceph_lookup_snap_realm(struct ceph_mds_client *mdsc , u64 ino ) { struct rb_node *n ; struct ceph_snap_realm *r ; struct rb_node const *__mptr ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { n = mdsc->snap_realms.rb_node; goto ldv_28861; ldv_28860: __mptr = (struct rb_node const *)n; r = (struct ceph_snap_realm *)__mptr + 0xfffffffffffffff0UL; if (r->ino > ino) { n = n->rb_left; } else if (r->ino < ino) { n = n->rb_right; } else { descriptor.modname = "ceph"; descriptor.function = "ceph_lookup_snap_realm"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : lookup_snap_realm %llx %p\n"; descriptor.lineno = 222U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : lookup_snap_realm %llx %p\n", 3, (char *)" ", tmp, 222, r->ino, r); } else { } return (r); } ldv_28861: ; if ((unsigned long )n != (unsigned long )((struct rb_node *)0)) { goto ldv_28860; } else { } return (0); } } static void __put_snap_realm(struct ceph_mds_client *mdsc , struct ceph_snap_realm *realm ) ; static void __destroy_snap_realm(struct ceph_mds_client *mdsc , struct ceph_snap_realm *realm ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { descriptor.modname = "ceph"; descriptor.function = "__destroy_snap_realm"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __destroy_snap_realm %p %llx\n"; descriptor.lineno = 238U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __destroy_snap_realm %p %llx\n", 3, (char *)" ", tmp, 238, realm, realm->ino); } else { } rb_erase(& realm->node, & mdsc->snap_realms); if ((unsigned long )realm->parent != (unsigned long )((struct ceph_snap_realm *)0)) { list_del_init(& realm->child_item); __put_snap_realm(mdsc, realm->parent); } else { } kfree((void const *)realm->prior_parent_snaps); kfree((void const *)realm->snaps); ceph_put_snap_context(realm->cached_context); kfree((void const *)realm); return; } } static void __put_snap_realm(struct ceph_mds_client *mdsc , struct ceph_snap_realm *realm ) { struct _ddebug descriptor ; int tmp ; int tmp___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; { descriptor.modname = "ceph"; descriptor.function = "__put_snap_realm"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __put_snap_realm %llx %p %d -> %d\n"; descriptor.lineno = 260U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp = atomic_read((atomic_t const *)(& realm->nref)); tmp___0 = atomic_read((atomic_t const *)(& realm->nref)); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __put_snap_realm %llx %p %d -> %d\n", 3, (char *)" ", tmp___1, 260, realm->ino, realm, tmp___0, tmp + -1); } else { } tmp___3 = atomic_dec_and_test(& realm->nref); if (tmp___3 != 0) { __destroy_snap_realm(mdsc, realm); } else { } return; } } void ceph_put_snap_realm(struct ceph_mds_client *mdsc , struct ceph_snap_realm *realm ) { struct _ddebug descriptor ; int tmp ; int tmp___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; int tmp___4 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_put_snap_realm"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : put_snap_realm %llx %p %d -> %d\n"; descriptor.lineno = 272U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp = atomic_read((atomic_t const *)(& realm->nref)); tmp___0 = atomic_read((atomic_t const *)(& realm->nref)); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : put_snap_realm %llx %p %d -> %d\n", 3, (char *)" ", tmp___1, 272, realm->ino, realm, tmp___0, tmp + -1); } else { } tmp___3 = atomic_dec_and_test(& realm->nref); if (tmp___3 == 0) { return; } else { } tmp___4 = down_write_trylock(& mdsc->snap_rwsem); if (tmp___4 != 0) { __destroy_snap_realm(mdsc, realm); up_write(& mdsc->snap_rwsem); } else { spin_lock(& mdsc->snap_empty_lock); list_add(& realm->empty_item, & mdsc->snap_empty); spin_unlock(& mdsc->snap_empty_lock); } return; } } static void __cleanup_empty_realms(struct ceph_mds_client *mdsc ) { struct ceph_snap_realm *realm ; struct list_head const *__mptr ; int tmp ; { spin_lock(& mdsc->snap_empty_lock); goto ldv_28891; ldv_28890: __mptr = (struct list_head const *)mdsc->snap_empty.next; realm = (struct ceph_snap_realm *)__mptr + 0xffffffffffffff70UL; list_del(& realm->empty_item); spin_unlock(& mdsc->snap_empty_lock); __destroy_snap_realm(mdsc, realm); spin_lock(& mdsc->snap_empty_lock); ldv_28891: tmp = list_empty((struct list_head const *)(& mdsc->snap_empty)); if (tmp == 0) { goto ldv_28890; } else { } spin_unlock(& mdsc->snap_empty_lock); return; } } void ceph_cleanup_empty_realms(struct ceph_mds_client *mdsc ) { { down_write(& mdsc->snap_rwsem); __cleanup_empty_realms(mdsc); up_write(& mdsc->snap_rwsem); return; } } static int adjust_snap_realm_parent(struct ceph_mds_client *mdsc , struct ceph_snap_realm *realm , u64 parentino ) { struct ceph_snap_realm *parent ; long tmp ; long tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; { if (realm->parent_ino == parentino) { return (0); } else { } parent = ceph_lookup_snap_realm(mdsc, parentino); if ((unsigned long )parent == (unsigned long )((struct ceph_snap_realm *)0)) { parent = ceph_create_snap_realm(mdsc, parentino); tmp___0 = IS_ERR((void const *)parent); if (tmp___0 != 0L) { tmp = PTR_ERR((void const *)parent); return ((int )tmp); } else { } } else { } descriptor.modname = "ceph"; descriptor.function = "adjust_snap_realm_parent"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : adjust_snap_realm_parent %llx %p: %llx %p -> %llx %p\n"; descriptor.lineno = 341U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : adjust_snap_realm_parent %llx %p: %llx %p -> %llx %p\n", 3, (char *)" ", tmp___1, 341, realm->ino, realm, realm->parent_ino, realm->parent, parentino, parent); } else { } if ((unsigned long )realm->parent != (unsigned long )((struct ceph_snap_realm *)0)) { list_del_init(& realm->child_item); ceph_put_snap_realm(mdsc, realm->parent); } else { } realm->parent_ino = parentino; realm->parent = parent; ceph_get_snap_realm(mdsc, parent); list_add(& realm->child_item, & parent->children); return (1); } } static int cmpu64_rev(void const *a , void const *b ) { { if (*((u64 *)a) < *((u64 *)b)) { return (1); } else { } if (*((u64 *)a) > *((u64 *)b)) { return (-1); } else { } return (0); } } static int build_snap_context(struct ceph_snap_realm *realm ) { struct ceph_snap_realm *parent ; struct ceph_snap_context *snapc ; int err ; u32 num ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; void *tmp___1 ; u32 i ; u32 tmp___2 ; size_t __len ; void *__ret ; size_t __len___0 ; void *__ret___0 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; { parent = realm->parent; err = 0; num = realm->num_prior_parent_snaps + realm->num_snaps; if ((unsigned long )parent != (unsigned long )((struct ceph_snap_realm *)0)) { if ((unsigned long )parent->cached_context == (unsigned long )((struct ceph_snap_context *)0)) { err = build_snap_context(parent); if (err != 0) { goto fail; } else { } } else { } num = (parent->cached_context)->num_snaps + num; } else { } if (((unsigned long )realm->cached_context != (unsigned long )((struct ceph_snap_context *)0) && (realm->cached_context)->seq == realm->seq) && ((unsigned long )parent == (unsigned long )((struct ceph_snap_realm *)0) || (realm->cached_context)->seq >= (parent->cached_context)->seq)) { descriptor.modname = "ceph"; descriptor.function = "build_snap_context"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : build_snap_context %llx %p: %p seq %lld (%u snaps) (unchanged)\n"; descriptor.lineno = 399U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : build_snap_context %llx %p: %p seq %lld (%u snaps) (unchanged)\n", 3, (char *)" ", tmp, 399, realm->ino, realm, realm->cached_context, (realm->cached_context)->seq, (realm->cached_context)->num_snaps); } else { } return (0); } else { } err = -12; tmp___1 = kzalloc(((unsigned long )num + 3UL) * 8UL, 80U); snapc = (struct ceph_snap_context *)tmp___1; if ((unsigned long )snapc == (unsigned long )((struct ceph_snap_context *)0)) { goto fail; } else { } atomic_set(& snapc->nref, 1); num = 0U; snapc->seq = realm->seq; if ((unsigned long )parent != (unsigned long )((struct ceph_snap_realm *)0)) { i = 0U; goto ldv_28920; ldv_28919: ; if ((parent->cached_context)->snaps[i] >= realm->parent_since) { tmp___2 = num; num = num + 1U; snapc->snaps[tmp___2] = (parent->cached_context)->snaps[i]; } else { } i = i + 1U; ldv_28920: ; if ((parent->cached_context)->num_snaps > i) { goto ldv_28919; } else { } if ((parent->cached_context)->seq > snapc->seq) { snapc->seq = (parent->cached_context)->seq; } else { } } else { } __len = (unsigned long )realm->num_snaps * 8UL; __ret = memcpy((void *)(& snapc->snaps) + (unsigned long )num, (void const *)realm->snaps, __len); num = realm->num_snaps + num; __len___0 = (unsigned long )realm->num_prior_parent_snaps * 8UL; __ret___0 = memcpy((void *)(& snapc->snaps) + (unsigned long )num, (void const *)realm->prior_parent_snaps, __len___0); num = realm->num_prior_parent_snaps + num; sort((void *)(& snapc->snaps), (size_t )num, 8UL, & cmpu64_rev, 0); snapc->num_snaps = num; descriptor___0.modname = "ceph"; descriptor___0.function = "build_snap_context"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : build_snap_context %llx %p: %p seq %lld (%u snaps)\n"; descriptor___0.lineno = 439U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : build_snap_context %llx %p: %p seq %lld (%u snaps)\n", 3, (char *)" ", tmp___3, 439, realm->ino, realm, snapc, snapc->seq, snapc->num_snaps); } else { } if ((unsigned long )realm->cached_context != (unsigned long )((struct ceph_snap_context *)0)) { ceph_put_snap_context(realm->cached_context); } else { } realm->cached_context = snapc; return (0); fail: ; if ((unsigned long )realm->cached_context != (unsigned long )((struct ceph_snap_context *)0)) { ceph_put_snap_context(realm->cached_context); realm->cached_context = 0; } else { } printk("\vceph: build_snap_context %llx %p fail %d\n", realm->ino, realm, err); return (err); } } static void rebuild_snap_realms(struct ceph_snap_realm *realm ) { struct ceph_snap_realm *child ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; struct list_head const *__mptr___0 ; { descriptor.modname = "ceph"; descriptor.function = "rebuild_snap_realms"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : rebuild_snap_realms %llx %p\n"; descriptor.lineno = 467U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : rebuild_snap_realms %llx %p\n", 3, (char *)" ", tmp, 467, realm->ino, realm); } else { } build_snap_context(realm); __mptr = (struct list_head const *)realm->children.next; child = (struct ceph_snap_realm *)__mptr + 0xffffffffffffff80UL; goto ldv_28940; ldv_28939: rebuild_snap_realms(child); __mptr___0 = (struct list_head const *)child->child_item.next; child = (struct ceph_snap_realm *)__mptr___0 + 0xffffffffffffff80UL; ldv_28940: ; if ((unsigned long )(& child->child_item) != (unsigned long )(& realm->children)) { goto ldv_28939; } else { } return; } } static int dup_array(u64 **dst , __le64 *src , u32 num ) { u32 i ; void *tmp ; { kfree((void const *)*dst); if (num != 0U) { tmp = kcalloc((size_t )num, 8UL, 80U); *dst = (u64 *)tmp; if ((unsigned long )*dst == (unsigned long )((u64 *)0)) { return (-12); } else { } i = 0U; goto ldv_28949; ldv_28948: *(*dst + (unsigned long )i) = get_unaligned_le64((void const *)src + (unsigned long )i); i = i + 1U; ldv_28949: ; if (i < num) { goto ldv_28948; } else { } } else { *dst = 0; } return (0); } } void ceph_queue_cap_snap(struct ceph_inode_info *ci ) { struct inode *inode ; struct ceph_cap_snap *capsnap ; int used ; int dirty ; void *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct ceph_snap_context *snapc ; struct _ddebug descriptor___0 ; char const *tmp___2 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___2 ; char const *tmp___7 ; long tmp___8 ; struct _ddebug descriptor___3 ; char const *tmp___9 ; long tmp___10 ; bool tmp___11 ; { inode = & ci->vfs_inode; tmp = kzalloc(184UL, 80U); capsnap = (struct ceph_cap_snap *)tmp; if ((unsigned long )capsnap == (unsigned long )((struct ceph_cap_snap *)0)) { printk("\vceph: ENOMEM allocating ceph_cap_snap on %p\n", inode); return; } else { } spin_lock(& ci->i_ceph_lock); used = __ceph_caps_used(ci); dirty = __ceph_caps_dirty(ci); if ((used & 4096) != 0) { dirty = dirty | 4096; } else { } tmp___11 = __ceph_have_pending_cap_snap(ci); if ((int )tmp___11) { descriptor.modname = "ceph"; descriptor.function = "ceph_queue_cap_snap"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : queue_cap_snap %p already pending\n"; descriptor.lineno = 540U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : queue_cap_snap %p already pending\n", 3, (char *)" ", tmp___0, 540, inode); } else { } kfree((void const *)capsnap); } else if ((dirty & 4744) != 0) { snapc = ci->i_head_snapc; if ((unsigned long )snapc == (unsigned long )((struct ceph_snap_context *)0)) { snapc = (ci->i_snap_realm)->cached_context; } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_queue_cap_snap"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : queue_cap_snap %p cap_snap %p queuing under %p %s\n"; descriptor___0.lineno = 554U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___2 = ceph_cap_string(dirty); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : queue_cap_snap %p cap_snap %p queuing under %p %s\n", 3, (char *)" ", tmp___3, 554, inode, capsnap, snapc, tmp___2); } else { } ihold(inode); atomic_set(& capsnap->nref, 1); capsnap->ci = ci; INIT_LIST_HEAD(& capsnap->ci_item); INIT_LIST_HEAD(& capsnap->flushing_item); capsnap->follows = snapc->seq; capsnap->issued = __ceph_caps_issued(ci, 0); capsnap->dirty = dirty; capsnap->mode = inode->i_mode; capsnap->uid = inode->i_uid; capsnap->gid = inode->i_gid; if ((dirty & 128) != 0) { __ceph_build_xattrs_blob(ci); capsnap->xattr_blob = ceph_buffer_get(ci->i_xattrs.blob); capsnap->xattr_version = ci->i_xattrs.version; } else { capsnap->xattr_blob = 0; capsnap->xattr_version = 0ULL; } capsnap->dirty_pages = ci->i_wrbuffer_ref_head; ci->i_wrbuffer_ref_head = 0; capsnap->context = snapc; ci->i_head_snapc = ceph_get_snap_context((ci->i_snap_realm)->cached_context); descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_queue_cap_snap"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : new snapc is %p\n"; descriptor___1.lineno = 588U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : new snapc is %p\n", 3, (char *)" ", tmp___5, 588, ci->i_head_snapc); } else { } list_add_tail(& capsnap->ci_item, & ci->i_cap_snaps); if ((used & 4096) != 0) { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_queue_cap_snap"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : queue_cap_snap %p cap_snap %p snapc %p seq %llu used WR, now pending\n"; descriptor___2.lineno = 594U; descriptor___2.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : queue_cap_snap %p cap_snap %p snapc %p seq %llu used WR, now pending\n", 3, (char *)" ", tmp___7, 594, inode, capsnap, snapc, snapc->seq); } else { } capsnap->writing = 1; } else { __ceph_finish_cap_snap(ci, capsnap); } } else { descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_queue_cap_snap"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : queue_cap_snap %p nothing dirty|writing\n"; descriptor___3.lineno = 601U; descriptor___3.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : queue_cap_snap %p nothing dirty|writing\n", 3, (char *)" ", tmp___9, 601, inode); } else { } kfree((void const *)capsnap); } spin_unlock(& ci->i_ceph_lock); return; } } int __ceph_finish_cap_snap(struct ceph_inode_info *ci , struct ceph_cap_snap *capsnap ) { struct inode *inode ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp ; long tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; char const *tmp___2 ; long tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; char const *tmp___5 ; long tmp___6 ; { inode = & ci->vfs_inode; tmp = ceph_sb_to_client(inode->i_sb); mdsc = tmp->mdsc; tmp___0 = ldv__builtin_expect(capsnap->writing != 0, 0L); if (tmp___0 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"), "i" (622), "i" (12UL)); ldv_28971: ; goto ldv_28971; } else { } capsnap->size = (u64 )inode->i_size; capsnap->mtime = inode->i_mtime; capsnap->atime = inode->i_atime; capsnap->ctime = inode->i_ctime; capsnap->time_warp_seq = (u64 )ci->i_time_warp_seq; if (capsnap->dirty_pages != 0) { descriptor.modname = "ceph"; descriptor.function = "__ceph_finish_cap_snap"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : finish_cap_snap %p cap_snap %p snapc %p %llu %s s=%llu still has %d dirty pages\n"; descriptor.lineno = 633U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___1 = ceph_cap_string(capsnap->dirty); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : finish_cap_snap %p cap_snap %p snapc %p %llu %s s=%llu still has %d dirty pages\n", 3, (char *)" ", tmp___2, 633, inode, capsnap, capsnap->context, (capsnap->context)->seq, tmp___1, capsnap->size, capsnap->dirty_pages); } else { } return (0); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "__ceph_finish_cap_snap"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : finish_cap_snap %p cap_snap %p snapc %p %llu %s s=%llu\n"; descriptor___0.lineno = 639U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___4 = ceph_cap_string(capsnap->dirty); tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : finish_cap_snap %p cap_snap %p snapc %p %llu %s s=%llu\n", 3, (char *)" ", tmp___5, 639, inode, capsnap, capsnap->context, (capsnap->context)->seq, tmp___4, capsnap->size); } else { } spin_lock(& mdsc->snap_flush_lock); list_add_tail(& ci->i_snap_flush_item, & mdsc->snap_flush_list); spin_unlock(& mdsc->snap_flush_lock); return (1); } } static void queue_realm_cap_snaps(struct ceph_snap_realm *realm ) { struct ceph_inode_info *ci ; struct inode *lastinode ; struct ceph_snap_realm *child ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; struct inode *inode ; struct inode *tmp___1 ; struct list_head const *__mptr___0 ; struct list_head const *__mptr___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; struct list_head const *__mptr___2 ; struct _ddebug descriptor___1 ; char const *tmp___4 ; long tmp___5 ; { lastinode = 0; descriptor.modname = "ceph"; descriptor.function = "queue_realm_cap_snaps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : queue_realm_cap_snaps %p %llx inodes\n"; descriptor.lineno = 657U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : queue_realm_cap_snaps %p %llx inodes\n", 3, (char *)" ", tmp, 657, realm, realm->ino); } else { } spin_lock(& realm->inodes_with_caps_lock); __mptr = (struct list_head const *)realm->inodes_with_caps.next; ci = (struct ceph_inode_info *)__mptr + 0xfffffffffffffc30UL; goto ldv_28990; ldv_28989: tmp___1 = igrab(& ci->vfs_inode); inode = tmp___1; if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { goto ldv_28988; } else { } spin_unlock(& realm->inodes_with_caps_lock); if ((unsigned long )lastinode != (unsigned long )((struct inode *)0)) { iput(lastinode); } else { } lastinode = inode; ceph_queue_cap_snap(ci); spin_lock(& realm->inodes_with_caps_lock); ldv_28988: __mptr___0 = (struct list_head const *)ci->i_snap_realm_item.next; ci = (struct ceph_inode_info *)__mptr___0 + 0xfffffffffffffc30UL; ldv_28990: ; if ((unsigned long )(& ci->i_snap_realm_item) != (unsigned long )(& realm->inodes_with_caps)) { goto ldv_28989; } else { } spin_unlock(& realm->inodes_with_caps_lock); if ((unsigned long )lastinode != (unsigned long )((struct inode *)0)) { iput(lastinode); } else { } __mptr___1 = (struct list_head const *)realm->children.next; child = (struct ceph_snap_realm *)__mptr___1 + 0xffffffffffffff80UL; goto ldv_28998; ldv_28997: descriptor___0.modname = "ceph"; descriptor___0.function = "queue_realm_cap_snaps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : queue_realm_cap_snaps %p %llx queue child %p %llx\n"; descriptor___0.lineno = 678U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : queue_realm_cap_snaps %p %llx queue child %p %llx\n", 3, (char *)" ", tmp___2, 678, realm, realm->ino, child, child->ino); } else { } list_del_init(& child->dirty_item); list_add(& child->dirty_item, & realm->dirty_item); __mptr___2 = (struct list_head const *)child->child_item.next; child = (struct ceph_snap_realm *)__mptr___2 + 0xffffffffffffff80UL; ldv_28998: ; if ((unsigned long )(& child->child_item) != (unsigned long )(& realm->children)) { goto ldv_28997; } else { } list_del_init(& realm->dirty_item); descriptor___1.modname = "ceph"; descriptor___1.function = "queue_realm_cap_snaps"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : queue_realm_cap_snaps %p %llx done\n"; descriptor___1.lineno = 684U; descriptor___1.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : queue_realm_cap_snaps %p %llx done\n", 3, (char *)" ", tmp___4, 684, realm, realm->ino); } else { } return; } } int ceph_update_snap_trace(struct ceph_mds_client *mdsc , void *p , void *e , bool deletion ) { struct ceph_mds_snap_realm *ri ; __le64 *snaps ; __le64 *prior_parent_snaps ; struct ceph_snap_realm *realm ; int invalidate ; int err ; struct list_head dirty_realms ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; int tmp___1 ; long tmp___2 ; int tmp___3 ; long tmp___4 ; long tmp___5 ; long tmp___6 ; struct _ddebug descriptor___0 ; char const *tmp___7 ; long tmp___8 ; struct _ddebug descriptor___1 ; char const *tmp___9 ; long tmp___10 ; struct _ddebug descriptor___2 ; char const *tmp___11 ; long tmp___12 ; struct _ddebug descriptor___3 ; char const *tmp___13 ; long tmp___14 ; struct list_head const *__mptr ; int tmp___15 ; { invalidate = 0; err = -12; dirty_realms.next = & dirty_realms; dirty_realms.prev = & dirty_realms; descriptor.modname = "ceph"; descriptor.function = "ceph_update_snap_trace"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : update_snap_trace deletion=%d\n"; descriptor.lineno = 705U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : update_snap_trace deletion=%d\n", 3, (char *)" ", tmp, 705, (int )deletion); } else { } more: tmp___1 = ceph_has_room(& p, e, 48UL); tmp___2 = ldv__builtin_expect(tmp___1 != 0, 1L); if (tmp___2 == 0L) { goto bad; } else { } ri = (struct ceph_mds_snap_realm *)p; p = p + 48UL; tmp___3 = ceph_has_room(& p, e, (unsigned long )(ri->num_snaps + ri->num_prior_parent_snaps) * 8UL); tmp___4 = ldv__builtin_expect(tmp___3 != 0, 1L); if (tmp___4 == 0L) { goto bad; } else { } snaps = (__le64 *)p; p = p + (unsigned long )ri->num_snaps * 8UL; prior_parent_snaps = (__le64 *)p; p = p + (unsigned long )ri->num_prior_parent_snaps * 8UL; realm = ceph_lookup_snap_realm(mdsc, ri->ino); if ((unsigned long )realm == (unsigned long )((struct ceph_snap_realm *)0)) { realm = ceph_create_snap_realm(mdsc, ri->ino); tmp___6 = IS_ERR((void const *)realm); if (tmp___6 != 0L) { tmp___5 = PTR_ERR((void const *)realm); err = (int )tmp___5; goto fail; } else { } } else { } err = adjust_snap_realm_parent(mdsc, realm, ri->parent); if (err < 0) { goto fail; } else { } invalidate = invalidate + err; if (ri->seq > realm->seq) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_update_snap_trace"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : update_snap_trace updating %llx %p %lld -> %lld\n"; descriptor___0.lineno = 734U; descriptor___0.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : update_snap_trace updating %llx %p %lld -> %lld\n", 3, (char *)" ", tmp___7, 734, realm->ino, realm, realm->seq, ri->seq); } else { } realm->seq = ri->seq; realm->created = ri->created; realm->parent_since = ri->parent_since; realm->num_snaps = ri->num_snaps; err = dup_array(& realm->snaps, snaps, realm->num_snaps); if (err < 0) { goto fail; } else { } realm->num_prior_parent_snaps = ri->num_prior_parent_snaps; err = dup_array(& realm->prior_parent_snaps, prior_parent_snaps, realm->num_prior_parent_snaps); if (err < 0) { goto fail; } else { } list_add(& realm->dirty_item, & dirty_realms); invalidate = 1; } else if ((unsigned long )realm->cached_context == (unsigned long )((struct ceph_snap_context *)0)) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_update_snap_trace"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : update_snap_trace %llx %p seq %lld new\n"; descriptor___1.lineno = 758U; descriptor___1.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : update_snap_trace %llx %p seq %lld new\n", 3, (char *)" ", tmp___9, 758, realm->ino, realm, realm->seq); } else { } invalidate = 1; } else { descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_update_snap_trace"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : update_snap_trace %llx %p seq %lld unchanged\n"; descriptor___2.lineno = 762U; descriptor___2.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : update_snap_trace %llx %p seq %lld unchanged\n", 3, (char *)" ", tmp___11, 762, realm->ino, realm, realm->seq); } else { } } descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_update_snap_trace"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : done with %llx %p, invalidated=%d, %p %p\n"; descriptor___3.lineno = 766U; descriptor___3.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : done with %llx %p, invalidated=%d, %p %p\n", 3, (char *)" ", tmp___13, 766, realm->ino, realm, invalidate, p, e); } else { } if ((unsigned long )p < (unsigned long )e) { goto more; } else { } if (invalidate != 0) { rebuild_snap_realms(realm); } else { } goto ldv_29026; ldv_29025: __mptr = (struct list_head const *)dirty_realms.next; realm = (struct ceph_snap_realm *)__mptr + 0xffffffffffffff60UL; queue_realm_cap_snaps(realm); ldv_29026: tmp___15 = list_empty((struct list_head const *)(& dirty_realms)); if (tmp___15 == 0) { goto ldv_29025; } else { } __cleanup_empty_realms(mdsc); return (0); bad: err = -22; fail: printk("\vceph: update_snap_trace error %d\n", err); return (err); } } static void flush_snaps(struct ceph_mds_client *mdsc ) { struct ceph_inode_info *ci ; struct inode *inode ; struct ceph_mds_session *session ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; int tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; { session = 0; descriptor.modname = "ceph"; descriptor.function = "flush_snaps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : flush_snaps\n"; descriptor.lineno = 808U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : flush_snaps\n", 3, (char *)" ", tmp, 808); } else { } spin_lock(& mdsc->snap_flush_lock); goto ldv_29039; ldv_29038: __mptr = (struct list_head const *)mdsc->snap_flush_list.next; ci = (struct ceph_inode_info *)__mptr + 0xfffffffffffffc20UL; inode = & ci->vfs_inode; ihold(inode); spin_unlock(& mdsc->snap_flush_lock); spin_lock(& ci->i_ceph_lock); __ceph_flush_snaps(ci, & session, 0); spin_unlock(& ci->i_ceph_lock); iput(inode); spin_lock(& mdsc->snap_flush_lock); ldv_29039: tmp___1 = list_empty((struct list_head const *)(& mdsc->snap_flush_list)); if (tmp___1 == 0) { goto ldv_29038; } else { } spin_unlock(& mdsc->snap_flush_lock); if ((unsigned long )session != (unsigned long )((struct ceph_mds_session *)0)) { ldv_mutex_unlock_147(& session->s_mutex); ceph_put_mds_session(session); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "flush_snaps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : flush_snaps done\n"; descriptor___0.lineno = 828U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : flush_snaps done\n", 3, (char *)" ", tmp___2, 828); } else { } return; } } void ceph_handle_snap(struct ceph_mds_client *mdsc , struct ceph_mds_session *session , struct ceph_msg *msg ) { struct super_block *sb ; int mds ; u64 split ; int op ; int trace_len ; struct ceph_snap_realm *realm ; void *p ; void *e ; struct ceph_mds_snap_head *h ; int num_split_inos ; int num_split_realms ; __le64 *split_inos ; __le64 *split_realms ; int i ; int locked_rwsem ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; long tmp___1 ; struct ceph_mds_snap_realm *ri ; int tmp___2 ; long tmp___3 ; long tmp___4 ; struct _ddebug descriptor___0 ; char const *tmp___5 ; long tmp___6 ; struct ceph_vino vino ; struct inode *inode ; struct inode *tmp___7 ; struct ceph_inode_info *ci ; struct ceph_snap_realm *oldrealm ; struct _ddebug descriptor___1 ; char const *tmp___8 ; long tmp___9 ; struct _ddebug descriptor___2 ; char const *tmp___10 ; long tmp___11 ; struct ceph_snap_realm *child ; struct ceph_snap_realm *tmp___12 ; { sb = (mdsc->fsc)->sb; mds = session->s_mds; realm = 0; p = msg->front.iov_base; e = p + msg->front.iov_len; split_inos = 0; split_realms = 0; locked_rwsem = 0; if (msg->front.iov_len <= 23UL) { goto bad; } else { } h = (struct ceph_mds_snap_head *)p; op = (int )h->op; split = h->split; num_split_inos = (int )h->num_split_inos; num_split_realms = (int )h->num_split_realms; trace_len = (int )h->trace_len; p = p + 24UL; descriptor.modname = "ceph"; descriptor.function = "ceph_handle_snap"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_snap from mds%d op %s split %llx tracelen %d\n"; descriptor.lineno = 874U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp = ceph_snap_op_name(op); tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_snap from mds%d op %s split %llx tracelen %d\n", 3, (char *)" ", tmp___0, 874, mds, tmp, split, trace_len); } else { } ldv_mutex_lock_148(& session->s_mutex); session->s_seq = session->s_seq + 1ULL; ldv_mutex_unlock_149(& session->s_mutex); down_write(& mdsc->snap_rwsem); locked_rwsem = 1; if (op == 3) { split_inos = (__le64 *)p; p = p + (unsigned long )num_split_inos * 8UL; split_realms = (__le64 *)p; p = p + (unsigned long )num_split_realms * 8UL; tmp___2 = ceph_has_room(& p, e, 48UL); tmp___3 = ldv__builtin_expect(tmp___2 != 0, 1L); if (tmp___3 == 0L) { goto bad; } else { } ri = (struct ceph_mds_snap_realm *)p; realm = ceph_lookup_snap_realm(mdsc, split); if ((unsigned long )realm == (unsigned long )((struct ceph_snap_realm *)0)) { realm = ceph_create_snap_realm(mdsc, split); tmp___4 = IS_ERR((void const *)realm); if (tmp___4 != 0L) { goto out; } else { } } else { } ceph_get_snap_realm(mdsc, realm); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_handle_snap"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : splitting snap_realm %llx %p\n"; descriptor___0.lineno = 910U; descriptor___0.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : splitting snap_realm %llx %p\n", 3, (char *)" ", tmp___5, 910, realm->ino, realm); } else { } i = 0; goto ldv_29077; ldv_29076: vino.ino = *(split_inos + (unsigned long )i); vino.snap = 0xfffffffffffffffeULL; tmp___7 = ceph_find_inode(sb, vino); inode = tmp___7; if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { goto ldv_29072; } else { } ci = ceph_inode(inode); spin_lock(& ci->i_ceph_lock); if ((unsigned long )ci->i_snap_realm == (unsigned long )((struct ceph_snap_realm *)0)) { goto skip_inode; } else { } if ((ci->i_snap_realm)->created > ri->created) { descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_handle_snap"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : leaving %p in newer realm %llx %p\n"; descriptor___1.lineno = 938U; descriptor___1.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : leaving %p in newer realm %llx %p\n", 3, (char *)" ", tmp___8, 938, inode, (ci->i_snap_realm)->ino, ci->i_snap_realm); } else { } goto skip_inode; } else { } descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_handle_snap"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : will move %p to split realm %llx %p\n"; descriptor___2.lineno = 942U; descriptor___2.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/snap.c.prepared", 260); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : will move %p to split realm %llx %p\n", 3, (char *)" ", tmp___10, 942, inode, realm->ino, realm); } else { } spin_lock(& realm->inodes_with_caps_lock); list_del_init(& ci->i_snap_realm_item); list_add(& ci->i_snap_realm_item, & realm->inodes_with_caps); oldrealm = ci->i_snap_realm; ci->i_snap_realm = realm; spin_unlock(& realm->inodes_with_caps_lock); spin_unlock(& ci->i_ceph_lock); ceph_get_snap_realm(mdsc, realm); ceph_put_snap_realm(mdsc, oldrealm); iput(inode); goto ldv_29072; skip_inode: spin_unlock(& ci->i_ceph_lock); iput(inode); ldv_29072: i = i + 1; ldv_29077: ; if (i < num_split_inos) { goto ldv_29076; } else { } i = 0; goto ldv_29082; ldv_29081: tmp___12 = ceph_lookup_snap_realm(mdsc, *(split_realms + (unsigned long )i)); child = tmp___12; if ((unsigned long )child == (unsigned long )((struct ceph_snap_realm *)0)) { goto ldv_29080; } else { } adjust_snap_realm_parent(mdsc, child, realm->ino); ldv_29080: i = i + 1; ldv_29082: ; if (i < num_split_realms) { goto ldv_29081; } else { } } else { } ceph_update_snap_trace(mdsc, p, e, op == 2); if (op == 3) { ceph_put_snap_realm(mdsc, realm); } else { } __cleanup_empty_realms(mdsc); up_write(& mdsc->snap_rwsem); flush_snaps(mdsc); return; bad: printk("\vceph: corrupt snap message from mds%d\n", mds); ceph_msg_dump(msg); out: ; if (locked_rwsem != 0) { up_write(& mdsc->snap_rwsem); } else { } return; } } void ldv_main9_sequence_infinite_withcheck_stateful(void) { int tmp ; int tmp___0 ; { LDV_IN_INTERRUPT = 1; ldv_initialize(); goto ldv_29103; ldv_29102: tmp = __VERIFIER_nondet_int(); switch (tmp) { default: ; goto ldv_29101; } ldv_29101: ; ldv_29103: tmp___0 = __VERIFIER_nondet_int(); if (tmp___0 != 0) { goto ldv_29102; } else { } ldv_check_final_state(); return; } } void ldv_mutex_lock_143(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_144(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_145(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_146(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_147(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_148(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_149(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } extern int sprintf(char * , char const * , ...) ; extern void *kmemdup(void const * , size_t , gfp_t ) ; void ldv_mutex_unlock_158(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_160(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_157(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_159(struct mutex *ldv_func_arg1 ) ; __inline static void put_unaligned_le32(u32 val , void *p ) { { *((__le32 *)p) = val; return; } } extern void __free_pages(struct page * , unsigned int ) ; __inline static void *kmap(struct page *page ) { void *tmp ; { __might_sleep("include/linux/highmem.h", 58, 0); tmp = lowmem_page_address((struct page const *)page); return (tmp); } } extern struct page *__page_cache_alloc(gfp_t ) ; __inline static void ceph_encode_32(void **p , u32 v ) { { put_unaligned_le32(v, *p); *p = *p + 4UL; return; } } static bool ceph_is_valid_xattr(char const *name ) { int tmp ; int tmp___0 ; int tmp___1 ; int tmp___2 ; int tmp___3 ; { tmp = strncmp(name, "ceph.", 5UL); if (tmp == 0) { tmp___3 = 1; } else { tmp___0 = strncmp(name, "security.", 9UL); if (tmp___0 == 0) { tmp___3 = 1; } else { tmp___1 = strncmp(name, "trusted.", 8UL); if (tmp___1 == 0) { tmp___3 = 1; } else { tmp___2 = strncmp(name, "user.", 5UL); if (tmp___2 == 0) { tmp___3 = 1; } else { tmp___3 = 0; } } } } return ((bool )tmp___3); } } static size_t ceph_vxattrcb_dir_entries(struct ceph_inode_info *ci , char *val , size_t size ) { int tmp ; { tmp = snprintf(val, size, "%lld", ci->i_files + ci->i_subdirs); return ((size_t )tmp); } } static size_t ceph_vxattrcb_dir_files(struct ceph_inode_info *ci , char *val , size_t size ) { int tmp ; { tmp = snprintf(val, size, "%lld", ci->i_files); return ((size_t )tmp); } } static size_t ceph_vxattrcb_dir_subdirs(struct ceph_inode_info *ci , char *val , size_t size ) { int tmp ; { tmp = snprintf(val, size, "%lld", ci->i_subdirs); return ((size_t )tmp); } } static size_t ceph_vxattrcb_dir_rentries(struct ceph_inode_info *ci , char *val , size_t size ) { int tmp ; { tmp = snprintf(val, size, "%lld", ci->i_rfiles + ci->i_rsubdirs); return ((size_t )tmp); } } static size_t ceph_vxattrcb_dir_rfiles(struct ceph_inode_info *ci , char *val , size_t size ) { int tmp ; { tmp = snprintf(val, size, "%lld", ci->i_rfiles); return ((size_t )tmp); } } static size_t ceph_vxattrcb_dir_rsubdirs(struct ceph_inode_info *ci , char *val , size_t size ) { int tmp ; { tmp = snprintf(val, size, "%lld", ci->i_rsubdirs); return ((size_t )tmp); } } static size_t ceph_vxattrcb_dir_rbytes(struct ceph_inode_info *ci , char *val , size_t size ) { int tmp ; { tmp = snprintf(val, size, "%lld", ci->i_rbytes); return ((size_t )tmp); } } static size_t ceph_vxattrcb_dir_rctime(struct ceph_inode_info *ci , char *val , size_t size ) { int tmp ; { tmp = snprintf(val, size, "%ld.09%ld", ci->i_rctime.tv_sec, ci->i_rctime.tv_nsec); return ((size_t )tmp); } } static struct ceph_vxattr ceph_dir_vxattrs[9U] = { {(char *)"ceph.dir.entries", 17UL, & ceph_vxattrcb_dir_entries, 1}, {(char *)"ceph.dir.files", 15UL, & ceph_vxattrcb_dir_files, 1}, {(char *)"ceph.dir.subdirs", 17UL, & ceph_vxattrcb_dir_subdirs, 1}, {(char *)"ceph.dir.rentries", 18UL, & ceph_vxattrcb_dir_rentries, 1}, {(char *)"ceph.dir.rfiles", 16UL, & ceph_vxattrcb_dir_rfiles, 1}, {(char *)"ceph.dir.rsubdirs", 18UL, & ceph_vxattrcb_dir_rsubdirs, 1}, {(char *)"ceph.dir.rbytes", 16UL, & ceph_vxattrcb_dir_rbytes, 1}, {(char *)"ceph.dir.rctime", 16UL, & ceph_vxattrcb_dir_rctime, 1}, {0, 0UL, 0, (_Bool)0}}; static size_t ceph_dir_vxattrs_name_size ; static size_t ceph_vxattrcb_file_layout(struct ceph_inode_info *ci , char *val , size_t size ) { int ret ; { ret = snprintf(val, size, "chunk_bytes=%lld\nstripe_count=%lld\nobject_size=%lld\n", (unsigned long long )((int )ci->i_layout.fl_stripe_unit), (unsigned long long )((int )ci->i_layout.fl_stripe_count), (unsigned long long )((int )ci->i_layout.fl_object_size)); return ((size_t )ret); } } static struct ceph_vxattr ceph_file_vxattrs[3U] = { {(char *)"ceph.file.layout", 17UL, & ceph_vxattrcb_file_layout, 1}, {(char *)"ceph.layout", 12UL, & ceph_vxattrcb_file_layout, 1}, {0, 0UL, 0, (_Bool)0}}; static size_t ceph_file_vxattrs_name_size ; static struct ceph_vxattr *ceph_inode_vxattrs(struct inode *inode ) { { if (((int )inode->i_mode & 61440) == 16384) { return ((struct ceph_vxattr *)(& ceph_dir_vxattrs)); } else if (((int )inode->i_mode & 61440) == 32768) { return ((struct ceph_vxattr *)(& ceph_file_vxattrs)); } else { } return (0); } } static size_t ceph_vxattrs_name_size(struct ceph_vxattr *vxattrs ) { { if ((unsigned long )vxattrs == (unsigned long )((struct ceph_vxattr *)(& ceph_dir_vxattrs))) { return (ceph_dir_vxattrs_name_size); } else { } if ((unsigned long )vxattrs == (unsigned long )((struct ceph_vxattr *)(& ceph_file_vxattrs))) { return (ceph_file_vxattrs_name_size); } else { } __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"), "i" (223), "i" (12UL)); ldv_29002: ; goto ldv_29002; return (0UL); } } static size_t vxattrs_name_size(struct ceph_vxattr *vxattrs ) { struct ceph_vxattr *vxattr ; size_t size ; { size = 0UL; vxattr = vxattrs; goto ldv_29009; ldv_29008: size = vxattr->name_size + size; vxattr = vxattr + 1; ldv_29009: ; if ((unsigned long )vxattr->name != (unsigned long )((char *)0)) { goto ldv_29008; } else { } return (size); } } void ceph_xattr_init(void) { { ceph_dir_vxattrs_name_size = vxattrs_name_size((struct ceph_vxattr *)(& ceph_dir_vxattrs)); ceph_file_vxattrs_name_size = vxattrs_name_size((struct ceph_vxattr *)(& ceph_file_vxattrs)); return; } } void ceph_xattr_exit(void) { { ceph_dir_vxattrs_name_size = 0UL; ceph_file_vxattrs_name_size = 0UL; return; } } static struct ceph_vxattr *ceph_match_vxattr(struct inode *inode , char const *name ) { struct ceph_vxattr *vxattr ; struct ceph_vxattr *tmp ; int tmp___0 ; { tmp = ceph_inode_vxattrs(inode); vxattr = tmp; if ((unsigned long )vxattr != (unsigned long )((struct ceph_vxattr *)0)) { goto ldv_29023; ldv_29022: tmp___0 = strcmp((char const *)vxattr->name, name); if (tmp___0 == 0) { return (vxattr); } else { } vxattr = vxattr + 1; ldv_29023: ; if ((unsigned long )vxattr->name != (unsigned long )((char *)0)) { goto ldv_29022; } else { } } else { } return (0); } } static int __set_xattr(struct ceph_inode_info *ci , char const *name , int name_len , char const *val , int val_len , int dirty , int should_free_name , int should_free_val , struct ceph_inode_xattr **newxattr ) { struct rb_node **p ; struct rb_node *parent ; struct ceph_inode_xattr *xattr ; int c ; int new ; struct rb_node const *__mptr ; int _min1 ; int _min2 ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___1 ; struct ceph_inode_info *tmp___3 ; struct ceph_inode_info *tmp___4 ; char const *tmp___5 ; long tmp___6 ; { parent = 0; xattr = 0; new = 0; p = & ci->i_xattrs.index.rb_node; goto ldv_29048; ldv_29047: parent = *p; __mptr = (struct rb_node const *)parent; xattr = (struct ceph_inode_xattr *)__mptr; _min1 = name_len; _min2 = xattr->name_len; c = strncmp(name, xattr->name, (__kernel_size_t )(_min1 < _min2 ? _min1 : _min2)); if (c < 0) { p = & (*p)->rb_left; } else if (c > 0) { p = & (*p)->rb_right; } else if (xattr->name_len == name_len) { goto ldv_29046; } else if (xattr->name_len > name_len) { p = & (*p)->rb_left; } else { p = & (*p)->rb_right; } xattr = 0; ldv_29048: ; if ((unsigned long )*p != (unsigned long )((struct rb_node *)0)) { goto ldv_29047; } else { } ldv_29046: ; if ((unsigned long )xattr == (unsigned long )((struct ceph_inode_xattr *)0)) { new = 1; xattr = *newxattr; xattr->name = name; xattr->name_len = name_len; xattr->should_free_name = should_free_name; ci->i_xattrs.count = ci->i_xattrs.count + 1; descriptor.modname = "ceph"; descriptor.function = "__set_xattr"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __set_xattr count=%d\n"; descriptor.lineno = 314U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __set_xattr count=%d\n", 3, (char *)" ", tmp, 314, ci->i_xattrs.count); } else { } } else { kfree((void const *)*newxattr); *newxattr = 0; if (xattr->should_free_val != 0) { kfree((void const *)xattr->val); } else { } if (should_free_name != 0) { kfree((void const *)name); name = xattr->name; } else { } ci->i_xattrs.names_size = ci->i_xattrs.names_size - xattr->name_len; ci->i_xattrs.vals_size = ci->i_xattrs.vals_size - xattr->val_len; } ci->i_xattrs.names_size = ci->i_xattrs.names_size + name_len; ci->i_xattrs.vals_size = ci->i_xattrs.vals_size + val_len; if ((unsigned long )val != (unsigned long )((char const *)0)) { xattr->val = val; } else { xattr->val = ""; } xattr->val_len = val_len; xattr->dirty = dirty; xattr->should_free_val = (unsigned long )val != (unsigned long )((char const *)0) && should_free_val != 0; if (new != 0) { rb_link_node(& xattr->node, parent, p); rb_insert_color(& xattr->node, & ci->i_xattrs.index); descriptor___0.modname = "ceph"; descriptor___0.function = "__set_xattr"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : __set_xattr_val p=%p\n"; descriptor___0.lineno = 342U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : __set_xattr_val p=%p\n", 3, (char *)" ", tmp___1, 342, p); } else { } } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "__set_xattr"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : __set_xattr_val added %llx.%llx xattr %p %s=%.*s\n"; descriptor___1.lineno = 346U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___3 = ceph_inode(& ci->vfs_inode); tmp___4 = ceph_inode(& ci->vfs_inode); tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : __set_xattr_val added %llx.%llx xattr %p %s=%.*s\n", 3, (char *)" ", tmp___5, 346, tmp___4->i_vino.ino, tmp___3->i_vino.snap, xattr, name, val_len, val); } else { } return (0); } } static struct ceph_inode_xattr *__get_xattr(struct ceph_inode_info *ci , char const *name ) { struct rb_node **p ; struct rb_node *parent ; struct ceph_inode_xattr *xattr ; int name_len ; size_t tmp ; int c ; struct rb_node const *__mptr ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; { parent = 0; xattr = 0; tmp = strlen(name); name_len = (int )tmp; p = & ci->i_xattrs.index.rb_node; goto ldv_29067; ldv_29066: parent = *p; __mptr = (struct rb_node const *)parent; xattr = (struct ceph_inode_xattr *)__mptr; c = strncmp(name, xattr->name, (__kernel_size_t )xattr->name_len); if (c == 0 && xattr->name_len < name_len) { c = 1; } else { } if (c < 0) { p = & (*p)->rb_left; } else if (c > 0) { p = & (*p)->rb_right; } else { descriptor.modname = "ceph"; descriptor.function = "__get_xattr"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __get_xattr %s: found %.*s\n"; descriptor.lineno = 373U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __get_xattr %s: found %.*s\n", 3, (char *)" ", tmp___0, 373, name, xattr->val_len, xattr->val); } else { } return (xattr); } ldv_29067: ; if ((unsigned long )*p != (unsigned long )((struct rb_node *)0)) { goto ldv_29066; } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "__get_xattr"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : __get_xattr %s: not found\n"; descriptor___0.lineno = 378U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : __get_xattr %s: not found\n", 3, (char *)" ", tmp___2, 378, name); } else { } return (0); } } static void __free_xattr(struct ceph_inode_xattr *xattr ) { long tmp ; { tmp = ldv__builtin_expect((unsigned long )xattr == (unsigned long )((struct ceph_inode_xattr *)0), 0L); if (tmp != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"), "i" (385), "i" (12UL)); ldv_29073: ; goto ldv_29073; } else { } if (xattr->should_free_name != 0) { kfree((void const *)xattr->name); } else { } if (xattr->should_free_val != 0) { kfree((void const *)xattr->val); } else { } kfree((void const *)xattr); return; } } static int __remove_xattr(struct ceph_inode_info *ci , struct ceph_inode_xattr *xattr ) { { if ((unsigned long )xattr == (unsigned long )((struct ceph_inode_xattr *)0)) { return (-95); } else { } rb_erase(& xattr->node, & ci->i_xattrs.index); if (xattr->should_free_name != 0) { kfree((void const *)xattr->name); } else { } if (xattr->should_free_val != 0) { kfree((void const *)xattr->val); } else { } ci->i_xattrs.names_size = ci->i_xattrs.names_size - xattr->name_len; ci->i_xattrs.vals_size = ci->i_xattrs.vals_size - xattr->val_len; ci->i_xattrs.count = ci->i_xattrs.count - 1; kfree((void const *)xattr); return (0); } } static int __remove_xattr_by_name(struct ceph_inode_info *ci , char const *name ) { struct rb_node **p ; struct ceph_inode_xattr *xattr ; int err ; { p = & ci->i_xattrs.index.rb_node; xattr = __get_xattr(ci, name); err = __remove_xattr(ci, xattr); return (err); } } static char *__copy_xattr_names(struct ceph_inode_info *ci , char *dest ) { struct rb_node *p ; struct ceph_inode_xattr *xattr ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct rb_node const *__mptr ; size_t __len ; void *__ret ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; { xattr = 0; p = rb_first((struct rb_root const *)(& ci->i_xattrs.index)); descriptor.modname = "ceph"; descriptor.function = "__copy_xattr_names"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __copy_xattr_names count=%d\n"; descriptor.lineno = 436U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __copy_xattr_names count=%d\n", 3, (char *)" ", tmp, 436, ci->i_xattrs.count); } else { } goto ldv_29100; ldv_29099: __mptr = (struct rb_node const *)p; xattr = (struct ceph_inode_xattr *)__mptr; __len = (size_t )xattr->name_len; __ret = memcpy((void *)dest, (void const *)xattr->name, __len); *(dest + (unsigned long )xattr->name_len) = 0; descriptor___0.modname = "ceph"; descriptor___0.function = "__copy_xattr_names"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : dest=%s %p (%s) (%d/%d)\n"; descriptor___0.lineno = 444U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : dest=%s %p (%s) (%d/%d)\n", 3, (char *)" ", tmp___1, 444, dest, xattr, xattr->name, xattr->name_len, ci->i_xattrs.names_size); } else { } dest = dest + ((unsigned long )xattr->name_len + 1UL); p = rb_next((struct rb_node const *)p); ldv_29100: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29099; } else { } return (dest); } } void __ceph_destroy_xattrs(struct ceph_inode_info *ci ) { struct rb_node *p ; struct rb_node *tmp ; struct ceph_inode_xattr *xattr ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct rb_node const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; struct rb_root __constr_expr_0 ; { xattr = 0; p = rb_first((struct rb_root const *)(& ci->i_xattrs.index)); descriptor.modname = "ceph"; descriptor.function = "__ceph_destroy_xattrs"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __ceph_destroy_xattrs p=%p\n"; descriptor.lineno = 460U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __ceph_destroy_xattrs p=%p\n", 3, (char *)" ", tmp___0, 460, p); } else { } goto ldv_29114; ldv_29113: __mptr = (struct rb_node const *)p; xattr = (struct ceph_inode_xattr *)__mptr; tmp = p; p = rb_next((struct rb_node const *)tmp); descriptor___0.modname = "ceph"; descriptor___0.function = "__ceph_destroy_xattrs"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : __ceph_destroy_xattrs next p=%p (%.*s)\n"; descriptor___0.lineno = 467U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : __ceph_destroy_xattrs next p=%p (%.*s)\n", 3, (char *)" ", tmp___2, 467, p, xattr->name_len, xattr->name); } else { } rb_erase(tmp, & ci->i_xattrs.index); __free_xattr(xattr); ldv_29114: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29113; } else { } ci->i_xattrs.names_size = 0; ci->i_xattrs.vals_size = 0; ci->i_xattrs.index_version = 0ULL; ci->i_xattrs.count = 0; __constr_expr_0.rb_node = 0; ci->i_xattrs.index = __constr_expr_0; return; } } static int __build_xattrs(struct inode *inode ) { u32 namelen ; u32 numattr ; void *p ; void *end ; u32 len ; char const *name ; char const *val ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int xattr_version ; struct ceph_inode_xattr **xattrs ; int err ; int i ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; int tmp___2 ; long tmp___3 ; void *tmp___4 ; void *tmp___5 ; int tmp___6 ; long tmp___7 ; int tmp___8 ; long tmp___9 ; u32 tmp___10 ; { numattr = 0U; tmp = ceph_inode(inode); ci = tmp; xattrs = 0; err = 0; descriptor.modname = "ceph"; descriptor.function = "__build_xattrs"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __build_xattrs() len=%d\n"; descriptor.lineno = 496U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __build_xattrs() len=%d\n", 3, (char *)" ", tmp___0, 496, (unsigned long )ci->i_xattrs.blob != (unsigned long )((struct ceph_buffer *)0) ? (int )(ci->i_xattrs.blob)->vec.iov_len : 0); } else { } if (ci->i_xattrs.index_version >= ci->i_xattrs.version) { return (0); } else { } __ceph_destroy_xattrs(ci); start: ; if ((unsigned long )ci->i_xattrs.blob != (unsigned long )((struct ceph_buffer *)0) && (ci->i_xattrs.blob)->vec.iov_len > 4UL) { p = (ci->i_xattrs.blob)->vec.iov_base; end = p + (ci->i_xattrs.blob)->vec.iov_len; tmp___2 = ceph_has_room(& p, end, 4UL); tmp___3 = ldv__builtin_expect(tmp___2 != 0, 1L); if (tmp___3 == 0L) { goto bad; } else { } numattr = ceph_decode_32(& p); xattr_version = (int )ci->i_xattrs.version; spin_unlock(& ci->i_ceph_lock); tmp___4 = kcalloc((size_t )numattr, 8UL, 80U); xattrs = (struct ceph_inode_xattr **)tmp___4; err = -12; if ((unsigned long )xattrs == (unsigned long )((struct ceph_inode_xattr **)0)) { goto bad_lock; } else { } memset((void *)xattrs, 0, (unsigned long )numattr * 8UL); i = 0; goto ldv_29139; ldv_29138: tmp___5 = kmalloc(64UL, 80U); *(xattrs + (unsigned long )i) = (struct ceph_inode_xattr *)tmp___5; if ((unsigned long )*(xattrs + (unsigned long )i) == (unsigned long )((struct ceph_inode_xattr *)0)) { goto bad_lock; } else { } i = i + 1; ldv_29139: ; if ((u32 )i < numattr) { goto ldv_29138; } else { } spin_lock(& ci->i_ceph_lock); if (ci->i_xattrs.version != (u64 )xattr_version) { i = 0; goto ldv_29142; ldv_29141: kfree((void const *)*(xattrs + (unsigned long )i)); i = i + 1; ldv_29142: ; if ((u32 )i < numattr) { goto ldv_29141; } else { } kfree((void const *)xattrs); xattrs = 0; goto start; } else { } err = -5; goto ldv_29145; ldv_29144: tmp___6 = ceph_has_room(& p, end, 4UL); tmp___7 = ldv__builtin_expect(tmp___6 != 0, 1L); if (tmp___7 == 0L) { goto bad; } else { } len = ceph_decode_32(& p); namelen = len; name = (char const *)p; p = p + (unsigned long )len; tmp___8 = ceph_has_room(& p, end, 4UL); tmp___9 = ldv__builtin_expect(tmp___8 != 0, 1L); if (tmp___9 == 0L) { goto bad; } else { } len = ceph_decode_32(& p); val = (char const *)p; p = p + (unsigned long )len; err = __set_xattr(ci, name, (int )namelen, val, (int )len, 0, 0, 0, xattrs + (unsigned long )numattr); if (err < 0) { goto bad; } else { } ldv_29145: tmp___10 = numattr; numattr = numattr - 1U; if (tmp___10 != 0U) { goto ldv_29144; } else { } kfree((void const *)xattrs); } else { } ci->i_xattrs.index_version = ci->i_xattrs.version; ci->i_xattrs.dirty = 0; return (err); bad_lock: spin_lock(& ci->i_ceph_lock); bad: ; if ((unsigned long )xattrs != (unsigned long )((struct ceph_inode_xattr **)0)) { i = 0; goto ldv_29148; ldv_29147: kfree((void const *)*(xattrs + (unsigned long )i)); i = i + 1; ldv_29148: ; if ((u32 )i < numattr) { goto ldv_29147; } else { } kfree((void const *)xattrs); } else { } ci->i_xattrs.names_size = 0; return (err); } } static int __get_required_blob_size(struct ceph_inode_info *ci , int name_size , int val_size ) { int size ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { size = ((ci->i_xattrs.count * 8 + 4) + ci->i_xattrs.names_size) + ci->i_xattrs.vals_size; descriptor.modname = "ceph"; descriptor.function = "__get_required_blob_size"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __get_required_blob_size c=%d names.size=%d vals.size=%d\n"; descriptor.lineno = 580U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __get_required_blob_size c=%d names.size=%d vals.size=%d\n", 3, (char *)" ", tmp, 580, ci->i_xattrs.count, ci->i_xattrs.names_size, ci->i_xattrs.vals_size); } else { } if (name_size != 0) { size = ((name_size + 8) + val_size) + size; } else { } return (size); } } void __ceph_build_xattrs_blob(struct ceph_inode_info *ci ) { struct rb_node *p ; struct ceph_inode_xattr *xattr ; void *dest ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; int need ; int tmp___1 ; long tmp___2 ; struct rb_node const *__mptr ; size_t __len ; void *__ret ; size_t __len___0 ; void *__ret___0 ; { xattr = 0; descriptor.modname = "ceph"; descriptor.function = "__ceph_build_xattrs_blob"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __build_xattrs_blob %p\n"; descriptor.lineno = 598U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __build_xattrs_blob %p\n", 3, (char *)" ", tmp, 598, & ci->vfs_inode); } else { } if ((int )ci->i_xattrs.dirty) { tmp___1 = __get_required_blob_size(ci, 0, 0); need = tmp___1; tmp___2 = ldv__builtin_expect((size_t )need > (ci->i_xattrs.prealloc_blob)->alloc_len, 0L); if (tmp___2 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"), "i" (602), "i" (12UL)); ldv_29167: ; goto ldv_29167; } else { } p = rb_first((struct rb_root const *)(& ci->i_xattrs.index)); dest = (ci->i_xattrs.prealloc_blob)->vec.iov_base; ceph_encode_32(& dest, (u32 )ci->i_xattrs.count); goto ldv_29177; ldv_29176: __mptr = (struct rb_node const *)p; xattr = (struct ceph_inode_xattr *)__mptr; ceph_encode_32(& dest, (u32 )xattr->name_len); __len = (size_t )xattr->name_len; __ret = memcpy(dest, (void const *)xattr->name, __len); dest = dest + (unsigned long )xattr->name_len; ceph_encode_32(& dest, (u32 )xattr->val_len); __len___0 = (size_t )xattr->val_len; __ret___0 = memcpy(dest, (void const *)xattr->val, __len___0); dest = dest + (unsigned long )xattr->val_len; p = rb_next((struct rb_node const *)p); ldv_29177: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_29176; } else { } (ci->i_xattrs.prealloc_blob)->vec.iov_len = (size_t )((long )dest - (long )(ci->i_xattrs.prealloc_blob)->vec.iov_base); if ((unsigned long )ci->i_xattrs.blob != (unsigned long )((struct ceph_buffer *)0)) { ceph_buffer_put(ci->i_xattrs.blob); } else { } ci->i_xattrs.blob = ci->i_xattrs.prealloc_blob; ci->i_xattrs.prealloc_blob = 0; ci->i_xattrs.dirty = 0; ci->i_xattrs.version = ci->i_xattrs.version + 1ULL; } else { } return; } } ssize_t ceph_getxattr(struct dentry *dentry , char const *name , void *value , size_t size ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int err ; struct ceph_inode_xattr *xattr ; struct ceph_vxattr *vxattr ; bool tmp___0 ; int tmp___1 ; struct _ddebug descriptor ; char const *tmp___2 ; long tmp___3 ; int tmp___4 ; size_t tmp___5 ; size_t tmp___6 ; size_t __len ; void *__ret ; { inode = dentry->d_inode; tmp = ceph_inode(inode); ci = tmp; vxattr = 0; tmp___0 = ceph_is_valid_xattr(name); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { return (-61L); } else { } vxattr = ceph_match_vxattr(inode, name); spin_lock(& ci->i_ceph_lock); descriptor.modname = "ceph"; descriptor.function = "ceph_getxattr"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : getxattr %p ver=%lld index_ver=%lld\n"; descriptor.lineno = 651U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : getxattr %p ver=%lld index_ver=%lld\n", 3, (char *)" ", tmp___2, 651, inode, ci->i_xattrs.version, ci->i_xattrs.index_version); } else { } tmp___4 = __ceph_caps_issued_mask(ci, 64, 1); if (tmp___4 != 0 && ci->i_xattrs.index_version >= ci->i_xattrs.version) { goto get_xattr; } else { spin_unlock(& ci->i_ceph_lock); err = ceph_do_getattr(inode, 64); if (err != 0) { return ((ssize_t )err); } else { } } spin_lock(& ci->i_ceph_lock); if ((unsigned long )vxattr != (unsigned long )((struct ceph_vxattr *)0) && (int )vxattr->readonly) { tmp___5 = (*(vxattr->getxattr_cb))(ci, (char *)value, size); err = (int )tmp___5; goto out; } else { } err = __build_xattrs(inode); if (err < 0) { goto out; } else { } get_xattr: err = -61; xattr = __get_xattr(ci, name); if ((unsigned long )xattr == (unsigned long )((struct ceph_inode_xattr *)0)) { if ((unsigned long )vxattr != (unsigned long )((struct ceph_vxattr *)0)) { tmp___6 = (*(vxattr->getxattr_cb))(ci, (char *)value, size); err = (int )tmp___6; } else { } goto out; } else { } err = -34; if (size != 0UL && (size_t )xattr->val_len > size) { goto out; } else { } err = xattr->val_len; if (size == 0UL) { goto out; } else { } __len = (size_t )xattr->val_len; __ret = memcpy(value, (void const *)xattr->val, __len); out: spin_unlock(& ci->i_ceph_lock); return ((ssize_t )err); } } ssize_t ceph_listxattr(struct dentry *dentry , char *names , size_t size ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct ceph_vxattr *vxattrs ; struct ceph_vxattr *tmp___0 ; u32 vir_namelen ; u32 namelen ; int err ; u32 len ; int i ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; size_t tmp___4 ; int tmp___5 ; { inode = dentry->d_inode; tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_inode_vxattrs(inode); vxattrs = tmp___0; vir_namelen = 0U; spin_lock(& ci->i_ceph_lock); descriptor.modname = "ceph"; descriptor.function = "ceph_listxattr"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : listxattr %p ver=%lld index_ver=%lld\n"; descriptor.lineno = 712U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : listxattr %p ver=%lld index_ver=%lld\n", 3, (char *)" ", tmp___1, 712, inode, ci->i_xattrs.version, ci->i_xattrs.index_version); } else { } tmp___3 = __ceph_caps_issued_mask(ci, 64, 1); if (tmp___3 != 0 && ci->i_xattrs.index_version >= ci->i_xattrs.version) { goto list_xattr; } else { spin_unlock(& ci->i_ceph_lock); err = ceph_do_getattr(inode, 64); if (err != 0) { return ((ssize_t )err); } else { } } spin_lock(& ci->i_ceph_lock); err = __build_xattrs(inode); if (err < 0) { goto out; } else { } list_xattr: tmp___4 = ceph_vxattrs_name_size(vxattrs); vir_namelen = (u32 )tmp___4; namelen = ((u32 )ci->i_xattrs.names_size + vir_namelen) + (u32 )ci->i_xattrs.count; err = -34; if (size != 0UL && (size_t )namelen > size) { goto out; } else { } err = (int )namelen; if (size == 0UL) { goto out; } else { } names = __copy_xattr_names(ci, names); if ((unsigned long )vxattrs != (unsigned long )((struct ceph_vxattr *)0)) { i = 0; goto ldv_29215; ldv_29214: tmp___5 = sprintf(names, "%s", (vxattrs + (unsigned long )i)->name); len = (u32 )tmp___5; names = names + (unsigned long )(len + 1U); i = i + 1; ldv_29215: ; if ((unsigned long )(vxattrs + (unsigned long )i)->name != (unsigned long )((char *)0)) { goto ldv_29214; } else { } } else { } out: spin_unlock(& ci->i_ceph_lock); return ((ssize_t )err); } } static int ceph_sync_setxattr(struct dentry *dentry , char const *name , char const *value , size_t size , int flags ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___0 ; struct inode *parent_inode ; struct ceph_mds_request *req ; struct ceph_mds_client *mdsc ; int err ; int i ; int nr_pages ; struct page **pages ; void *kaddr ; void *tmp___1 ; size_t __len ; unsigned long _min1 ; unsigned long _min2 ; void *__ret ; struct _ddebug descriptor ; char const *tmp___2 ; long tmp___3 ; long tmp___4 ; long tmp___5 ; struct _ddebug descriptor___0 ; char const *tmp___6 ; long tmp___7 ; struct _ddebug descriptor___1 ; char const *tmp___8 ; long tmp___9 ; { tmp = ceph_sb_to_client(dentry->d_sb); fsc = tmp; inode = dentry->d_inode; tmp___0 = ceph_inode(inode); ci = tmp___0; mdsc = fsc->mdsc; pages = 0; nr_pages = calc_pages_for(0ULL, (u64 )size); if (nr_pages != 0) { tmp___1 = kmalloc((unsigned long )nr_pages * 8UL, 80U); pages = (struct page **)tmp___1; if ((unsigned long )pages == (unsigned long )((struct page **)0)) { return (-12); } else { } err = -12; i = 0; goto ldv_29246; ldv_29245: *(pages + (unsigned long )i) = __page_cache_alloc(80U); if ((unsigned long )*(pages + (unsigned long )i) == (unsigned long )((struct page *)0)) { nr_pages = i; goto out; } else { } kaddr = kmap(*(pages + (unsigned long )i)); _min1 = 4096UL; _min2 = size - (unsigned long )i * 4096UL; __len = _min1 < _min2 ? _min1 : _min2; __ret = memcpy(kaddr, (void const *)(value + (unsigned long )i * 4096UL), __len); i = i + 1; ldv_29246: ; if (i < nr_pages) { goto ldv_29245; } else { } } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_sync_setxattr"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : setxattr value=%.*s\n"; descriptor.lineno = 794U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : setxattr value=%.*s\n", 3, (char *)" ", tmp___2, 794, (int )size, value); } else { } req = ceph_mdsc_create_request(mdsc, 4357, 2); tmp___5 = IS_ERR((void const *)req); if (tmp___5 != 0L) { tmp___4 = PTR_ERR((void const *)req); err = (int )tmp___4; goto out; } else { } req->r_inode = inode; ihold(inode); req->r_inode_drop = 64; req->r_num_caps = 1; req->r_args.setxattr.flags = (unsigned int )flags; req->r_path2 = kstrdup(name, 80U); req->r_pages = pages; req->r_num_pages = nr_pages; req->r_data_len = (int )size; descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_sync_setxattr"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : xattr.ver (before): %lld\n"; descriptor___0.lineno = 814U; descriptor___0.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : xattr.ver (before): %lld\n", 3, (char *)" ", tmp___6, 814, ci->i_xattrs.version); } else { } parent_inode = ceph_get_dentry_parent_inode(dentry); err = ceph_mdsc_do_request(mdsc, parent_inode, req); iput(parent_inode); ceph_mdsc_put_request(req); descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_sync_setxattr"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : xattr.ver (after): %lld\n"; descriptor___1.lineno = 819U; descriptor___1.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : xattr.ver (after): %lld\n", 3, (char *)" ", tmp___8, 819, ci->i_xattrs.version); } else { } out: ; if ((unsigned long )pages != (unsigned long )((struct page **)0)) { i = 0; goto ldv_29253; ldv_29252: __free_pages(*(pages + (unsigned long )i), 0U); i = i + 1; ldv_29253: ; if (i < nr_pages) { goto ldv_29252; } else { } kfree((void const *)pages); } else { } return (err); } } int ceph_setxattr(struct dentry *dentry , char const *name , void const *value , size_t size , int flags ) { struct inode *inode ; struct ceph_vxattr *vxattr ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int issued ; int err ; int dirty ; int name_len ; size_t tmp___0 ; int val_len ; char *newname ; char *newval ; struct ceph_inode_xattr *xattr ; int required_blob_size ; u64 tmp___1 ; bool tmp___2 ; int tmp___3 ; void *tmp___4 ; void *tmp___5 ; void *tmp___6 ; struct _ddebug descriptor ; char const *tmp___7 ; char const *tmp___8 ; long tmp___9 ; struct ceph_buffer *blob ; struct _ddebug descriptor___0 ; char const *tmp___10 ; long tmp___11 ; { inode = dentry->d_inode; tmp = ceph_inode(inode); ci = tmp; tmp___0 = strlen(name); name_len = (int )tmp___0; val_len = (int )size; newname = 0; newval = 0; xattr = 0; tmp___1 = ceph_snap(inode); if (tmp___1 != 0xfffffffffffffffeULL) { return (-30); } else { } tmp___2 = ceph_is_valid_xattr(name); if (tmp___2) { tmp___3 = 0; } else { tmp___3 = 1; } if (tmp___3) { return (-95); } else { } vxattr = ceph_match_vxattr(inode, name); if ((unsigned long )vxattr != (unsigned long )((struct ceph_vxattr *)0) && (int )vxattr->readonly) { return (-95); } else { } err = -12; tmp___4 = kmemdup((void const *)name, (size_t )(name_len + 1), 80U); newname = (char *)tmp___4; if ((unsigned long )newname == (unsigned long )((char *)0)) { goto out; } else { } if (val_len != 0) { tmp___5 = kmemdup(value, (size_t )val_len, 80U); newval = (char *)tmp___5; if ((unsigned long )newval == (unsigned long )((char *)0)) { goto out; } else { } } else { } tmp___6 = kmalloc(64UL, 80U); xattr = (struct ceph_inode_xattr *)tmp___6; if ((unsigned long )xattr == (unsigned long )((struct ceph_inode_xattr *)0)) { goto out; } else { } spin_lock(& ci->i_ceph_lock); retry: issued = __ceph_caps_issued(ci, 0); descriptor.modname = "ceph"; descriptor.function = "ceph_setxattr"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : setxattr %p issued %s\n"; descriptor.lineno = 875U; descriptor.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___7 = ceph_cap_string(issued); tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : setxattr %p issued %s\n", 3, (char *)" ", tmp___8, 875, inode, tmp___7); } else { } if ((issued & 128) == 0) { goto do_sync; } else { } __build_xattrs(inode); required_blob_size = __get_required_blob_size(ci, name_len, val_len); if ((unsigned long )ci->i_xattrs.prealloc_blob == (unsigned long )((struct ceph_buffer *)0) || (size_t )required_blob_size > (ci->i_xattrs.prealloc_blob)->alloc_len) { spin_unlock(& ci->i_ceph_lock); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_setxattr"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : preaallocating new blob size=%d\n"; descriptor___0.lineno = 887U; descriptor___0.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : preaallocating new blob size=%d\n", 3, (char *)" ", tmp___10, 887, required_blob_size); } else { } blob = ceph_buffer_new((size_t )required_blob_size, 80U); if ((unsigned long )blob == (unsigned long )((struct ceph_buffer *)0)) { goto out; } else { } spin_lock(& ci->i_ceph_lock); if ((unsigned long )ci->i_xattrs.prealloc_blob != (unsigned long )((struct ceph_buffer *)0)) { ceph_buffer_put(ci->i_xattrs.prealloc_blob); } else { } ci->i_xattrs.prealloc_blob = blob; goto retry; } else { } err = __set_xattr(ci, (char const *)newname, name_len, (char const *)newval, val_len, 1, 1, 1, & xattr); dirty = __ceph_mark_dirty_caps(ci, 128); ci->i_xattrs.dirty = 1; inode->i_ctime = current_kernel_time(); spin_unlock(& ci->i_ceph_lock); if (dirty != 0) { __mark_inode_dirty(inode, dirty); } else { } return (err); do_sync: spin_unlock(& ci->i_ceph_lock); err = ceph_sync_setxattr(dentry, name, (char const *)value, size, flags); out: kfree((void const *)newname); kfree((void const *)newval); kfree((void const *)xattr); return (err); } } static int ceph_send_removexattr(struct dentry *dentry , char const *name ) { struct ceph_fs_client *fsc ; struct ceph_fs_client *tmp ; struct ceph_mds_client *mdsc ; struct inode *inode ; struct inode *parent_inode ; struct ceph_mds_request *req ; int err ; long tmp___0 ; long tmp___1 ; { tmp = ceph_sb_to_client(dentry->d_sb); fsc = tmp; mdsc = fsc->mdsc; inode = dentry->d_inode; req = ceph_mdsc_create_request(mdsc, 4358, 2); tmp___1 = IS_ERR((void const *)req); if (tmp___1 != 0L) { tmp___0 = PTR_ERR((void const *)req); return ((int )tmp___0); } else { } req->r_inode = inode; ihold(inode); req->r_inode_drop = 64; req->r_num_caps = 1; req->r_path2 = kstrdup(name, 80U); parent_inode = ceph_get_dentry_parent_inode(dentry); err = ceph_mdsc_do_request(mdsc, parent_inode, req); iput(parent_inode); ceph_mdsc_put_request(req); return (err); } } int ceph_removexattr(struct dentry *dentry , char const *name ) { struct inode *inode ; struct ceph_vxattr *vxattr ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int issued ; int err ; int required_blob_size ; int dirty ; u64 tmp___0 ; bool tmp___1 ; int tmp___2 ; struct _ddebug descriptor ; char const *tmp___3 ; char const *tmp___4 ; long tmp___5 ; struct ceph_buffer *blob ; struct _ddebug descriptor___0 ; char const *tmp___6 ; long tmp___7 ; struct ceph_inode_info *tmp___8 ; { inode = dentry->d_inode; tmp = ceph_inode(inode); ci = tmp; tmp___0 = ceph_snap(inode); if (tmp___0 != 0xfffffffffffffffeULL) { return (-30); } else { } tmp___1 = ceph_is_valid_xattr(name); if (tmp___1) { tmp___2 = 0; } else { tmp___2 = 1; } if (tmp___2) { return (-95); } else { } vxattr = ceph_match_vxattr(inode, name); if ((unsigned long )vxattr != (unsigned long )((struct ceph_vxattr *)0) && (int )vxattr->readonly) { return (-95); } else { } err = -12; spin_lock(& ci->i_ceph_lock); retry: issued = __ceph_caps_issued(ci, 0); descriptor.modname = "ceph"; descriptor.function = "ceph_removexattr"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : removexattr %p issued %s\n"; descriptor.lineno = 970U; descriptor.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___3 = ceph_cap_string(issued); tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : removexattr %p issued %s\n", 3, (char *)" ", tmp___4, 970, inode, tmp___3); } else { } if ((issued & 128) == 0) { goto do_sync; } else { } __build_xattrs(inode); required_blob_size = __get_required_blob_size(ci, 0, 0); if ((unsigned long )ci->i_xattrs.prealloc_blob == (unsigned long )((struct ceph_buffer *)0) || (size_t )required_blob_size > (ci->i_xattrs.prealloc_blob)->alloc_len) { spin_unlock(& ci->i_ceph_lock); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_removexattr"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : preaallocating new blob size=%d\n"; descriptor___0.lineno = 983U; descriptor___0.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/xattr.c.prepared", 261); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : preaallocating new blob size=%d\n", 3, (char *)" ", tmp___6, 983, required_blob_size); } else { } blob = ceph_buffer_new((size_t )required_blob_size, 80U); if ((unsigned long )blob == (unsigned long )((struct ceph_buffer *)0)) { goto out; } else { } spin_lock(& ci->i_ceph_lock); if ((unsigned long )ci->i_xattrs.prealloc_blob != (unsigned long )((struct ceph_buffer *)0)) { ceph_buffer_put(ci->i_xattrs.prealloc_blob); } else { } ci->i_xattrs.prealloc_blob = blob; goto retry; } else { } tmp___8 = ceph_inode(inode); err = __remove_xattr_by_name(tmp___8, name); dirty = __ceph_mark_dirty_caps(ci, 128); ci->i_xattrs.dirty = 1; inode->i_ctime = current_kernel_time(); spin_unlock(& ci->i_ceph_lock); if (dirty != 0) { __mark_inode_dirty(inode, dirty); } else { } return (err); do_sync: spin_unlock(& ci->i_ceph_lock); err = ceph_send_removexattr(dentry, name); out: ; return (err); } } void ldv_mutex_lock_157(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_158(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_159(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_160(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } __inline static int get_count_order(unsigned int count ) { int order ; int tmp ; { tmp = fls((int )count); order = tmp + -1; if (((count - 1U) & count) != 0U) { order = order + 1; } else { } return (order); } } __inline static void list_splice_init(struct list_head *list , struct list_head *head ) { int tmp ; { tmp = list_empty((struct list_head const *)list); if (tmp == 0) { __list_splice((struct list_head const *)list, head, head->next); INIT_LIST_HEAD(list); } else { } return; } } extern char *strncpy(char * , char const * , __kernel_size_t ) ; __inline static void rep_nop(void) { { __asm__ volatile ("rep; nop": : : "memory"); return; } } __inline static void cpu_relax(void) { { rep_nop(); return; } } extern void __cmpxchg_wrong_size(void) ; __inline static int atomic_cmpxchg(atomic_t *v , int old , int new ) { int __ret ; int __old ; int __new ; u8 volatile *__ptr ; u16 volatile *__ptr___0 ; u32 volatile *__ptr___1 ; u64 volatile *__ptr___2 ; { __old = old; __new = new; switch (4UL) { case 1UL: __ptr = (u8 volatile *)(& v->counter); __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; cmpxchgb %2,%1": "=a" (__ret), "+m" (*__ptr): "q" (__new), "0" (__old): "memory"); goto ldv_5494; case 2UL: __ptr___0 = (u16 volatile *)(& v->counter); __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; cmpxchgw %2,%1": "=a" (__ret), "+m" (*__ptr___0): "r" (__new), "0" (__old): "memory"); goto ldv_5494; case 4UL: __ptr___1 = (u32 volatile *)(& v->counter); __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; cmpxchgl %2,%1": "=a" (__ret), "+m" (*__ptr___1): "r" (__new), "0" (__old): "memory"); goto ldv_5494; case 8UL: __ptr___2 = (u64 volatile *)(& v->counter); __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; cmpxchgq %2,%1": "=a" (__ret), "+m" (*__ptr___2): "r" (__new), "0" (__old): "memory"); goto ldv_5494; default: __cmpxchg_wrong_size(); } ldv_5494: ; return (__ret); } } __inline static int __atomic_add_unless(atomic_t *v , int a , int u ) { int c ; int old ; long tmp ; long tmp___0 ; { c = atomic_read((atomic_t const *)v); ldv_5523: tmp = ldv__builtin_expect(c == u, 0L); if (tmp != 0L) { goto ldv_5522; } else { } old = atomic_cmpxchg(v, c, c + a); tmp___0 = ldv__builtin_expect(old == c, 1L); if (tmp___0 != 0L) { goto ldv_5522; } else { } c = old; goto ldv_5523; ldv_5522: ; return (c); } } __inline static int atomic_add_unless(atomic_t *v , int a , int u ) { int tmp ; { tmp = __atomic_add_unless(v, a, u); return (tmp != u); } } extern void lock_acquire(struct lockdep_map * , unsigned int , int , int , int , struct lockdep_map * , unsigned long ) ; extern void lock_release(struct lockdep_map * , int , unsigned long ) ; extern void lockdep_rcu_suspicious(char const * , int const , char const * ) ; void ldv_mutex_unlock_166(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_168(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_170(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_172(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_174(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_176(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_178(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_180(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_183(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_184(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_186(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_187(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_188(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_189(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_190(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_191(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_192(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_193(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_196(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_198(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_199(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_201(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_203(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_205(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_207(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_209(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_211(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_213(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_214(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_215(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_218(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_219(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_222(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_224(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_226(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_228(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_230(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_232(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_234(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_236(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_238(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_240(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_242(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_244(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_246(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_248(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_250(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_252(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_254(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_256(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_258(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_260(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_261(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_262(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_264(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_265(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_165(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_167(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_169(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_171(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_173(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_175(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_177(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_179(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_181(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_182(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_185(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_194(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_195(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_197(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_200(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_202(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_204(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_206(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_208(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_210(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_212(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_216(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_217(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_220(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_221(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_223(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_225(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_227(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_229(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_231(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_233(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_235(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_237(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_239(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_241(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_243(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_245(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_247(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_249(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_251(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_253(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_255(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_257(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_259(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_263(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_r_fill_mutex(struct mutex *lock ) ; void ldv_mutex_unlock_r_fill_mutex(struct mutex *lock ) ; __inline static struct thread_info *current_thread_info___0(void) { struct thread_info *ti ; unsigned long pfo_ret__ ; { switch (8UL) { case 1UL: __asm__ ("movb %%gs:%P1,%0": "=q" (pfo_ret__): "p" (& kernel_stack)); goto ldv_6618; case 2UL: __asm__ ("movw %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack)); goto ldv_6618; case 4UL: __asm__ ("movl %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack)); goto ldv_6618; case 8UL: __asm__ ("movq %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack)); goto ldv_6618; default: __bad_percpu_size(); } ldv_6618: ti = (struct thread_info *)(pfo_ret__ - 8152UL); return (ti); } } __inline static unsigned int read_seqbegin(seqlock_t const *sl ) { unsigned int ret ; long tmp ; { repeat: ret = *((unsigned int const volatile *)(& sl->sequence)); tmp = ldv__builtin_expect((long )((int )ret) & 1L, 0L); if (tmp != 0L) { cpu_relax(); goto repeat; } else { } __asm__ volatile ("": : : "memory"); return (ret); } } __inline static int read_seqretry(seqlock_t const *sl , unsigned int start ) { long tmp ; { __asm__ volatile ("": : : "memory"); tmp = ldv__builtin_expect((unsigned int )sl->sequence != start, 0L); return ((int )tmp); } } __inline static void init_completion(struct completion *x ) { struct lock_class_key __key ; { x->done = 0U; __init_waitqueue_head(& x->wait, "&x->wait", & __key); return; } } extern int wait_for_completion_killable(struct completion * ) ; extern long wait_for_completion_killable_timeout(struct completion * , unsigned long ) ; extern void complete_all(struct completion * ) ; __inline static void __rcu_read_lock(void) { struct thread_info *tmp ; { tmp = current_thread_info___0(); tmp->preempt_count = tmp->preempt_count + 1; __asm__ volatile ("": : : "memory"); return; } } __inline static void __rcu_read_unlock(void) { struct thread_info *tmp ; { __asm__ volatile ("": : : "memory"); tmp = current_thread_info___0(); tmp->preempt_count = tmp->preempt_count + -1; __asm__ volatile ("": : : "memory"); return; } } extern int rcu_is_cpu_idle(void) ; __inline static void rcu_lock_acquire(struct lockdep_map *map ) { { lock_acquire(map, 0U, 0, 2, 1, 0, (unsigned long )((void *)0)); return; } } __inline static void rcu_lock_release(struct lockdep_map *map ) { { lock_release(map, 1, (unsigned long )((void *)0)); return; } } extern struct lockdep_map rcu_lock_map ; extern int debug_lockdep_rcu_enabled(void) ; __inline static void rcu_read_lock(void) { bool __warned ; int tmp ; int tmp___0 ; { __rcu_read_lock(); rcu_lock_acquire(& rcu_lock_map); tmp = debug_lockdep_rcu_enabled(); if (tmp != 0 && ! __warned) { tmp___0 = rcu_is_cpu_idle(); if (tmp___0 != 0) { __warned = 1; lockdep_rcu_suspicious("include/linux/rcupdate.h", 763, "rcu_read_lock() used illegally while idle"); } else { } } else { } return; } } __inline static void rcu_read_unlock(void) { bool __warned ; int tmp ; int tmp___0 ; { tmp = debug_lockdep_rcu_enabled(); if (tmp != 0 && ! __warned) { tmp___0 = rcu_is_cpu_idle(); if (tmp___0 != 0) { __warned = 1; lockdep_rcu_suspicious("include/linux/rcupdate.h", 784, "rcu_read_unlock() used illegally while idle"); } else { } } else { } rcu_lock_release(& rcu_lock_map); __rcu_read_unlock(); return; } } extern seqlock_t rename_lock ; extern void d_prune_aliases(struct inode * ) ; extern void __init_rwsem(struct rw_semaphore * , char const * , struct lock_class_key * ) ; extern void init_timer_key(struct timer_list * , unsigned int , char const * , struct lock_class_key * ) ; extern unsigned long round_jiffies_relative(unsigned long ) ; extern void delayed_work_timer_fn(unsigned long ) ; extern bool schedule_delayed_work(struct delayed_work * , unsigned long ) ; extern bool cancel_delayed_work_sync(struct delayed_work * ) ; extern void lock_flocks(void) ; extern void unlock_flocks(void) ; __inline static void kref_init(struct kref *kref ) { { atomic_set(& kref->refcount, 1); return; } } extern long schedule_timeout(long ) ; __inline static void put_unaligned_le64(u64 val , void *p ) { { *((__le64 *)p) = val; return; } } char const *ceph_mds_state_name(int s ) ; char const *ceph_session_op_name(int op ) ; char const *ceph_mds_op_name(int op ) ; char const *ceph_lease_op_name(int o ) ; extern void get_random_bytes(void * , int ) ; extern void ceph_msgr_flush(void) ; extern void ceph_con_init(struct ceph_connection * , void * , struct ceph_connection_operations const * , struct ceph_messenger * ) ; extern void ceph_con_open(struct ceph_connection * , __u8 , __u64 , struct ceph_entity_addr * ) ; extern void ceph_con_close(struct ceph_connection * ) ; extern void ceph_con_keepalive(struct ceph_connection * ) ; __inline static struct ceph_msg *ceph_msg_get(struct ceph_msg *msg ) { { kref_get(& msg->kref); return (msg); } } extern void ceph_msg_last_put(struct kref * ) ; __inline static void ceph_msg_put(struct ceph_msg *msg ) { { kref_put(& msg->kref, & ceph_msg_last_put); return; } } extern int ceph_monc_got_mdsmap(struct ceph_mon_client * , u32 ) ; extern int ceph_monc_validate_auth(struct ceph_mon_client * ) ; extern char const *ceph_msg_type_name(int ) ; extern int ceph_check_fsid(struct ceph_client * , struct ceph_fsid * ) ; __inline static struct ceph_entity_addr *ceph_mdsmap_get_addr(struct ceph_mdsmap *m , int w ) { { if ((u32 )w >= m->m_max_mds) { return (0); } else { } return (& (m->m_info + (unsigned long )w)->addr); } } __inline static int ceph_mdsmap_get_state(struct ceph_mdsmap *m , int w ) { long tmp ; { tmp = ldv__builtin_expect(w < 0, 0L); if (tmp != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/linux/ceph/mdsmap.h"), "i" (46), "i" (12UL)); ldv_29109: ; goto ldv_29109; } else { } if ((u32 )w >= m->m_max_mds) { return (0); } else { } return ((m->m_info + (unsigned long )w)->state); } } __inline static bool ceph_mdsmap_is_laggy(struct ceph_mdsmap *m , int w ) { { if (w >= 0 && (u32 )w < m->m_max_mds) { return ((m->m_info + (unsigned long )w)->laggy); } else { } return (0); } } int ceph_mdsmap_get_random_mds(struct ceph_mdsmap *m ) ; struct ceph_mdsmap *ceph_mdsmap_decode(void **p , void *end ) ; void ceph_mdsmap_destroy(struct ceph_mdsmap *m ) ; void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc , struct inode *inode , struct dentry *dentry ) ; void ceph_mdsc_submit_request(struct ceph_mds_client *mdsc , struct ceph_mds_request *req ) ; char *ceph_mdsc_build_path(struct dentry *dentry , int *plen , u64 *base , int stop_on_nosnap ) ; __inline static u8 ceph_decode_8(void **p ) { u8 v ; { v = *((u8 *)*p); *p = *p + 1; return (v); } } __inline static void ceph_decode_copy(void **p , void *pv , size_t n ) { size_t __len ; void *__ret ; { __len = n; __ret = memcpy(pv, (void const *)*p, __len); *p = *p + n; return; } } __inline static void ceph_encode_64(void **p , u64 v ) { { put_unaligned_le64(v, *p); *p = *p + 8UL; return; } } __inline static void ceph_encode_8(void **p , u8 v ) { { *((u8 *)*p) = v; *p = *p + 1; return; } } __inline static void ceph_encode_filepath(void **p , void *end , u64 ino , char const *path ) { u32 len ; size_t tmp ; u32 tmp___0 ; long tmp___1 ; size_t __len ; void *__ret ; { if ((unsigned long )path != (unsigned long )((char const *)0)) { tmp = strlen(path); tmp___0 = (u32 )tmp; } else { tmp___0 = 0U; } len = tmp___0; tmp___1 = ldv__builtin_expect((unsigned long )(*p + ((unsigned long )len + 13UL)) > (unsigned long )end, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/linux/ceph/decode.h"), "i" (201), "i" (12UL)); ldv_29457: ; goto ldv_29457; } else { } ceph_encode_8(p, 1); ceph_encode_64(p, ino); ceph_encode_32(p, len); if (len != 0U) { __len = (size_t )len; __ret = memcpy(*p, (void const *)path, __len); } else { } *p = *p + (unsigned long )len; return; } } __inline static void ceph_pagelist_init(struct ceph_pagelist *pl ) { { INIT_LIST_HEAD(& pl->head); pl->mapped_tail = 0; pl->length = 0UL; pl->room = 0UL; INIT_LIST_HEAD(& pl->free_list); pl->num_pages_free = 0UL; return; } } extern int ceph_pagelist_release(struct ceph_pagelist * ) ; extern int ceph_pagelist_reserve(struct ceph_pagelist * , size_t ) ; extern void ceph_pagelist_set_cursor(struct ceph_pagelist * , struct ceph_pagelist_cursor * ) ; extern int ceph_pagelist_truncate(struct ceph_pagelist * , struct ceph_pagelist_cursor * ) ; __inline static int ceph_pagelist_encode_64(struct ceph_pagelist *pl , u64 v ) { __le64 ev ; int tmp ; { ev = v; tmp = ceph_pagelist_append(pl, (void const *)(& ev), 8UL); return (tmp); } } __inline static int ceph_pagelist_encode_32(struct ceph_pagelist *pl , u32 v ) { __le32 ev ; int tmp ; { ev = v; tmp = ceph_pagelist_append(pl, (void const *)(& ev), 4UL); return (tmp); } } __inline static int ceph_pagelist_encode_string(struct ceph_pagelist *pl , char *s , size_t len ) { int ret ; int tmp ; int tmp___0 ; { tmp = ceph_pagelist_encode_32(pl, (u32 )len); ret = tmp; if (ret != 0) { return (ret); } else { } if (len != 0UL) { tmp___0 = ceph_pagelist_append(pl, (void const *)s, len); return (tmp___0); } else { } return (0); } } static void __wake_requests(struct ceph_mds_client *mdsc , struct list_head *head ) ; static struct ceph_connection_operations const mds_con_ops ; static int parse_reply_info_in(void **p , void *end , struct ceph_mds_reply_info_in *info , int features ) { int err ; int tmp ; long tmp___0 ; int tmp___1 ; long tmp___2 ; int tmp___3 ; long tmp___4 ; int tmp___5 ; long tmp___6 ; int tmp___7 ; long tmp___8 ; { err = -5; info->in = (struct ceph_mds_reply_inode *)*p; *p = *p + ((unsigned long )(info->in)->fragtree.nsplits * 8UL + 221UL); tmp = ceph_has_room(p, end, 4UL); tmp___0 = ldv__builtin_expect(tmp != 0, 1L); if (tmp___0 == 0L) { goto bad; } else { } info->symlink_len = ceph_decode_32(p); tmp___1 = ceph_has_room(p, end, (size_t )info->symlink_len); tmp___2 = ldv__builtin_expect(tmp___1 != 0, 1L); if (tmp___2 == 0L) { goto bad; } else { } info->symlink = (char *)*p; *p = *p + (unsigned long )info->symlink_len; if ((features & 128) != 0) { tmp___3 = ceph_has_room(p, end, 8UL); tmp___4 = ldv__builtin_expect(tmp___3 != 0, 1L); if (tmp___4 == 0L) { goto bad; } else { } ceph_decode_copy(p, (void *)(& info->dir_layout), 8UL); } else { memset((void *)(& info->dir_layout), 0, 8UL); } tmp___5 = ceph_has_room(p, end, 4UL); tmp___6 = ldv__builtin_expect(tmp___5 != 0, 1L); if (tmp___6 == 0L) { goto bad; } else { } info->xattr_len = ceph_decode_32(p); tmp___7 = ceph_has_room(p, end, (size_t )info->xattr_len); tmp___8 = ldv__builtin_expect(tmp___7 != 0, 1L); if (tmp___8 == 0L) { goto bad; } else { } info->xattr_data = (char *)*p; *p = *p + (unsigned long )info->xattr_len; return (0); bad: ; return (err); } } static int parse_reply_info_trace(void **p , void *end , struct ceph_mds_reply_info_parsed *info , int features ) { int err ; long tmp ; long tmp___0 ; int tmp___1 ; long tmp___2 ; int tmp___3 ; long tmp___4 ; long tmp___5 ; { if ((unsigned int )(info->head)->is_dentry != 0U) { err = parse_reply_info_in(p, end, & info->diri, features); if (err < 0) { goto out_bad; } else { } tmp = ldv__builtin_expect((unsigned long )(*p + 12UL) > (unsigned long )end, 0L); if (tmp != 0L) { goto bad; } else { } info->dirfrag = (struct ceph_mds_reply_dirfrag *)*p; *p = *p + ((unsigned long )(info->dirfrag)->ndist + 3UL) * 4UL; tmp___0 = ldv__builtin_expect((unsigned long )*p > (unsigned long )end, 0L); if (tmp___0 != 0L) { goto bad; } else { } tmp___1 = ceph_has_room(p, end, 4UL); tmp___2 = ldv__builtin_expect(tmp___1 != 0, 1L); if (tmp___2 == 0L) { goto bad; } else { } info->dname_len = ceph_decode_32(p); tmp___3 = ceph_has_room(p, end, (size_t )info->dname_len); tmp___4 = ldv__builtin_expect(tmp___3 != 0, 1L); if (tmp___4 == 0L) { goto bad; } else { } info->dname = (char *)*p; *p = *p + (unsigned long )info->dname_len; info->dlease = (struct ceph_mds_reply_lease *)*p; *p = *p + 10UL; } else { } if ((unsigned int )(info->head)->is_target != 0U) { err = parse_reply_info_in(p, end, & info->targeti, features); if (err < 0) { goto out_bad; } else { } } else { } tmp___5 = ldv__builtin_expect((unsigned long )*p != (unsigned long )end, 0L); if (tmp___5 != 0L) { goto bad; } else { } return (0); bad: err = -5; out_bad: printk("\vceph: problem parsing mds trace %d\n", err); return (err); } } static int parse_reply_info_dir(void **p , void *end , struct ceph_mds_reply_info_parsed *info , int features ) { u32 num ; u32 i ; int err ; int tmp ; long tmp___0 ; void *tmp___1 ; int tmp___2 ; long tmp___3 ; int tmp___4 ; long tmp___5 ; struct _ddebug descriptor ; char const *tmp___6 ; long tmp___7 ; { i = 0U; info->ldv_29667.ldv_29666.dir_dir = (struct ceph_mds_reply_dirfrag *)*p; if ((unsigned long )(*p + 12UL) > (unsigned long )end) { goto bad; } else { } *p = *p + ((unsigned long )(info->ldv_29667.ldv_29666.dir_dir)->ndist + 3UL) * 4UL; if ((unsigned long )*p > (unsigned long )end) { goto bad; } else { } tmp = ceph_has_room(p, end, 6UL); tmp___0 = ldv__builtin_expect(tmp != 0, 1L); if (tmp___0 == 0L) { goto bad; } else { } num = ceph_decode_32(p); info->ldv_29667.ldv_29666.dir_end = ceph_decode_8(p); info->ldv_29667.ldv_29666.dir_complete = ceph_decode_8(p); if (num == 0U) { goto done; } else { } info->ldv_29667.ldv_29666.dir_nr = (int )num; tmp___1 = kcalloc((size_t )num, 68UL, 80U); info->ldv_29667.ldv_29666.dir_in = (struct ceph_mds_reply_info_in *)tmp___1; if ((unsigned long )info->ldv_29667.ldv_29666.dir_in == (unsigned long )((struct ceph_mds_reply_info_in *)0)) { err = -12; goto out_bad; } else { } info->ldv_29667.ldv_29666.dir_dname = (char **)info->ldv_29667.ldv_29666.dir_in + (unsigned long )num; info->ldv_29667.ldv_29666.dir_dname_len = (u32 *)info->ldv_29667.ldv_29666.dir_dname + (unsigned long )num; info->ldv_29667.ldv_29666.dir_dlease = (struct ceph_mds_reply_lease **)info->ldv_29667.ldv_29666.dir_dname_len + (unsigned long )num; goto ldv_29573; ldv_29572: tmp___2 = ceph_has_room(p, end, 8UL); tmp___3 = ldv__builtin_expect(tmp___2 != 0, 1L); if (tmp___3 == 0L) { goto bad; } else { } *(info->ldv_29667.ldv_29666.dir_dname_len + (unsigned long )i) = ceph_decode_32(p); tmp___4 = ceph_has_room(p, end, (size_t )*(info->ldv_29667.ldv_29666.dir_dname_len + (unsigned long )i)); tmp___5 = ldv__builtin_expect(tmp___4 != 0, 1L); if (tmp___5 == 0L) { goto bad; } else { } *(info->ldv_29667.ldv_29666.dir_dname + (unsigned long )i) = (char *)*p; *p = *p + (unsigned long )*(info->ldv_29667.ldv_29666.dir_dname_len + (unsigned long )i); descriptor.modname = "ceph"; descriptor.function = "parse_reply_info_dir"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : parsed dir dname \'%.*s\'\n"; descriptor.lineno = 262U; descriptor.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : parsed dir dname \'%.*s\'\n", 3, (char *)" ", tmp___6, 262, *(info->ldv_29667.ldv_29666.dir_dname_len + (unsigned long )i), *(info->ldv_29667.ldv_29666.dir_dname + (unsigned long )i)); } else { } *(info->ldv_29667.ldv_29666.dir_dlease + (unsigned long )i) = (struct ceph_mds_reply_lease *)*p; *p = *p + 10UL; err = parse_reply_info_in(p, end, info->ldv_29667.ldv_29666.dir_in + (unsigned long )i, features); if (err < 0) { goto out_bad; } else { } i = i + 1U; num = num - 1U; ldv_29573: ; if (num != 0U) { goto ldv_29572; } else { } done: ; if ((unsigned long )*p != (unsigned long )end) { goto bad; } else { } return (0); bad: err = -5; out_bad: printk("\vceph: problem parsing dir contents %d\n", err); return (err); } } static int parse_reply_info_filelock(void **p , void *end , struct ceph_mds_reply_info_parsed *info , int features ) { long tmp ; { if ((unsigned long )(*p + 41UL) > (unsigned long )end) { goto bad; } else { } info->ldv_29667.filelock_reply = (struct ceph_filelock *)*p; *p = *p + 41UL; tmp = ldv__builtin_expect((unsigned long )*p != (unsigned long )end, 0L); if (tmp != 0L) { goto bad; } else { } return (0); bad: ; return (-5); } } static int parse_reply_info_extra(void **p , void *end , struct ceph_mds_reply_info_parsed *info , int features ) { int tmp ; int tmp___0 ; { if ((info->head)->op == 272U) { tmp = parse_reply_info_filelock(p, end, info, features); return (tmp); } else { tmp___0 = parse_reply_info_dir(p, end, info, features); return (tmp___0); } } } static int parse_reply_info(struct ceph_msg *msg , struct ceph_mds_reply_info_parsed *info , int features ) { void *p ; void *end ; u32 len ; int err ; int tmp ; long tmp___0 ; int tmp___1 ; long tmp___2 ; int tmp___3 ; long tmp___4 ; int tmp___5 ; long tmp___6 ; int tmp___7 ; long tmp___8 ; { info->head = (struct ceph_mds_reply_head *)msg->front.iov_base; p = msg->front.iov_base + 15UL; end = p + (msg->front.iov_len + 0xfffffffffffffff1UL); tmp = ceph_has_room(& p, end, 4UL); tmp___0 = ldv__builtin_expect(tmp != 0, 1L); if (tmp___0 == 0L) { goto bad; } else { } len = ceph_decode_32(& p); if (len != 0U) { tmp___1 = ceph_has_room(& p, end, (size_t )len); tmp___2 = ldv__builtin_expect(tmp___1 != 0, 1L); if (tmp___2 == 0L) { goto bad; } else { } err = parse_reply_info_trace(& p, p + (unsigned long )len, info, features); if (err < 0) { goto out_bad; } else { } } else { } tmp___3 = ceph_has_room(& p, end, 4UL); tmp___4 = ldv__builtin_expect(tmp___3 != 0, 1L); if (tmp___4 == 0L) { goto bad; } else { } len = ceph_decode_32(& p); if (len != 0U) { tmp___5 = ceph_has_room(& p, end, (size_t )len); tmp___6 = ldv__builtin_expect(tmp___5 != 0, 1L); if (tmp___6 == 0L) { goto bad; } else { } err = parse_reply_info_extra(& p, p + (unsigned long )len, info, features); if (err < 0) { goto out_bad; } else { } } else { } tmp___7 = ceph_has_room(& p, end, 4UL); tmp___8 = ldv__builtin_expect(tmp___7 != 0, 1L); if (tmp___8 == 0L) { goto bad; } else { } len = ceph_decode_32(& p); info->snapblob_len = (int )len; info->snapblob = p; p = p + (unsigned long )len; if ((unsigned long )p != (unsigned long )end) { goto bad; } else { } return (0); bad: err = -5; out_bad: printk("\vceph: mds parse_reply err %d\n", err); return (err); } } static void destroy_reply_info(struct ceph_mds_reply_info_parsed *info ) { { kfree((void const *)info->ldv_29667.ldv_29666.dir_in); return; } } static char const *session_state_name(int s ) { { switch (s) { case 1: ; return ("new"); case 2: ; return ("opening"); case 3: ; return ("open"); case 4: ; return ("hung"); case 5: ; return ("closing"); case 6: ; return ("restarting"); case 7: ; return ("reconnecting"); default: ; return ("???"); } } } static struct ceph_mds_session *get_session(struct ceph_mds_session *s ) { struct _ddebug descriptor ; int tmp ; int tmp___0 ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; int tmp___5 ; { tmp___5 = atomic_add_unless(& s->s_ref, 1, 0); if (tmp___5 != 0) { descriptor.modname = "ceph"; descriptor.function = "get_session"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : mdsc get_session %p %d -> %d\n"; descriptor.lineno = 397U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp = atomic_read((atomic_t const *)(& s->s_ref)); tmp___0 = atomic_read((atomic_t const *)(& s->s_ref)); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : mdsc get_session %p %d -> %d\n", 3, (char *)" ", tmp___1, 397, s, tmp___0 + -1, tmp); } else { } return (s); } else { descriptor___0.modname = "ceph"; descriptor___0.function = "get_session"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mdsc get_session %p 0 -- FAIL"; descriptor___0.lineno = 400U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mdsc get_session %p 0 -- FAIL", 3, (char *)" ", tmp___3, 400, s); } else { } return (0); } } } void ceph_put_mds_session(struct ceph_mds_session *s ) { struct _ddebug descriptor ; int tmp ; int tmp___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_put_mds_session"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : mdsc put_session %p %d -> %d\n"; descriptor.lineno = 408U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp = atomic_read((atomic_t const *)(& s->s_ref)); tmp___0 = atomic_read((atomic_t const *)(& s->s_ref)); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : mdsc put_session %p %d -> %d\n", 3, (char *)" ", tmp___1, 408, s, tmp___0, tmp + -1); } else { } tmp___3 = atomic_dec_and_test(& s->s_ref); if (tmp___3 != 0) { if ((unsigned long )s->s_auth.authorizer != (unsigned long )((struct ceph_authorizer *)0)) { (*((((((s->s_mdsc)->fsc)->client)->monc.auth)->ops)->destroy_authorizer))((((s->s_mdsc)->fsc)->client)->monc.auth, s->s_auth.authorizer); } else { } kfree((void const *)s); } else { } return; } } struct ceph_mds_session *__ceph_lookup_mds_session(struct ceph_mds_client *mdsc , int mds ) { struct ceph_mds_session *session ; struct _ddebug descriptor ; int tmp ; char const *tmp___0 ; long tmp___1 ; { if (mdsc->max_sessions <= mds || (unsigned long )*(mdsc->sessions + (unsigned long )mds) == (unsigned long )((struct ceph_mds_session *)0)) { return (0); } else { } session = *(mdsc->sessions + (unsigned long )mds); descriptor.modname = "ceph"; descriptor.function = "__ceph_lookup_mds_session"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : lookup_mds_session %p %d\n"; descriptor.lineno = 430U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp = atomic_read((atomic_t const *)(& session->s_ref)); tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : lookup_mds_session %p %d\n", 3, (char *)" ", tmp___0, 430, session, tmp); } else { } get_session(session); return (session); } } static bool __have_session(struct ceph_mds_client *mdsc , int mds ) { { if (mdsc->max_sessions <= mds) { return (0); } else { } return ((unsigned long )*(mdsc->sessions + (unsigned long )mds) != (unsigned long )((struct ceph_mds_session *)0)); } } static int __verify_registered_session(struct ceph_mds_client *mdsc , struct ceph_mds_session *s ) { { if (s->s_mds >= mdsc->max_sessions || (unsigned long )*(mdsc->sessions + (unsigned long )s->s_mds) != (unsigned long )s) { return (-2); } else { } return (0); } } static struct ceph_mds_session *register_session(struct ceph_mds_client *mdsc , int mds ) { struct ceph_mds_session *s ; void *tmp ; void *tmp___0 ; struct lock_class_key __key ; struct lock_class_key __key___0 ; struct lock_class_key __key___1 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; int newmax ; int tmp___3 ; struct ceph_mds_session **sa ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; void *tmp___6 ; size_t __len ; void *__ret ; struct ceph_entity_addr *tmp___7 ; void *tmp___8 ; { tmp = kzalloc(1936UL, 80U); s = (struct ceph_mds_session *)tmp; if ((unsigned long )s == (unsigned long )((struct ceph_mds_session *)0)) { tmp___0 = ERR_PTR(-12L); return ((struct ceph_mds_session *)tmp___0); } else { } s->s_mdsc = mdsc; s->s_mds = mds; s->s_state = 1; s->s_ttl = 0UL; s->s_seq = 0ULL; __mutex_init(& s->s_mutex, "&s->s_mutex", & __key); ceph_con_init(& s->s_con, (void *)s, & mds_con_ops, & ((mdsc->fsc)->client)->msgr); spinlock_check(& s->s_gen_ttl_lock); __raw_spin_lock_init(& s->s_gen_ttl_lock.ldv_5961.rlock, "&(&s->s_gen_ttl_lock)->rlock", & __key___0); s->s_cap_gen = 0U; s->s_cap_ttl = (unsigned long )jiffies - 1UL; spinlock_check(& s->s_cap_lock); __raw_spin_lock_init(& s->s_cap_lock.ldv_5961.rlock, "&(&s->s_cap_lock)->rlock", & __key___1); s->s_renew_requested = 0UL; s->s_renew_seq = 0ULL; INIT_LIST_HEAD(& s->s_caps); s->s_nr_caps = 0; s->s_trim_caps = 0; atomic_set(& s->s_ref, 1); INIT_LIST_HEAD(& s->s_waiting); INIT_LIST_HEAD(& s->s_unsafe); s->s_num_cap_releases = 0; s->s_cap_iterator = 0; INIT_LIST_HEAD(& s->s_cap_releases); INIT_LIST_HEAD(& s->s_cap_releases_done); INIT_LIST_HEAD(& s->s_cap_flushing); INIT_LIST_HEAD(& s->s_cap_snaps_flushing); descriptor.modname = "ceph"; descriptor.function = "register_session"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : register_session mds%d\n"; descriptor.lineno = 492U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : register_session mds%d\n", 3, (char *)" ", tmp___1, 492, mds); } else { } if (mdsc->max_sessions <= mds) { tmp___3 = get_count_order((unsigned int )(mds + 1)); newmax = 1 << tmp___3; descriptor___0.modname = "ceph"; descriptor___0.function = "register_session"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : register_session realloc to %d\n"; descriptor___0.lineno = 497U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : register_session realloc to %d\n", 3, (char *)" ", tmp___4, 497, newmax); } else { } tmp___6 = kcalloc((size_t )newmax, 8UL, 80U); sa = (struct ceph_mds_session **)tmp___6; if ((unsigned long )sa == (unsigned long )((struct ceph_mds_session **)0)) { goto fail_realloc; } else { } if ((unsigned long )mdsc->sessions != (unsigned long )((struct ceph_mds_session **)0)) { __len = (unsigned long )mdsc->max_sessions * 8UL; __ret = memcpy((void *)sa, (void const *)mdsc->sessions, __len); kfree((void const *)mdsc->sessions); } else { } mdsc->sessions = sa; mdsc->max_sessions = newmax; } else { } *(mdsc->sessions + (unsigned long )mds) = s; atomic_inc(& s->s_ref); tmp___7 = ceph_mdsmap_get_addr(mdsc->mdsmap, mds); ceph_con_open(& s->s_con, 2, (__u64 )mds, tmp___7); return (s); fail_realloc: kfree((void const *)s); tmp___8 = ERR_PTR(-12L); return ((struct ceph_mds_session *)tmp___8); } } static void __unregister_session(struct ceph_mds_client *mdsc , struct ceph_mds_session *s ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; long tmp___1 ; { descriptor.modname = "ceph"; descriptor.function = "__unregister_session"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __unregister_session mds%d %p\n"; descriptor.lineno = 528U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __unregister_session mds%d %p\n", 3, (char *)" ", tmp, 528, s->s_mds, s); } else { } tmp___1 = ldv__builtin_expect((unsigned long )*(mdsc->sessions + (unsigned long )s->s_mds) != (unsigned long )s, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"), "i" (529), "i" (12UL)); ldv_29662: ; goto ldv_29662; } else { } *(mdsc->sessions + (unsigned long )s->s_mds) = 0; ceph_con_close(& s->s_con); ceph_put_mds_session(s); return; } } static void put_request_session(struct ceph_mds_request *req ) { { if ((unsigned long )req->r_session != (unsigned long )((struct ceph_mds_session *)0)) { ceph_put_mds_session(req->r_session); req->r_session = 0; } else { } return; } } void ceph_mdsc_release_request(struct kref *kref ) { struct ceph_mds_request *req ; struct kref const *__mptr ; struct ceph_inode_info *tmp ; struct ceph_inode_info *tmp___0 ; struct ceph_inode_info *tmp___1 ; { __mptr = (struct kref const *)kref; req = (struct ceph_mds_request *)__mptr + 0xfffffffffffffd10UL; if ((unsigned long )req->r_request != (unsigned long )((struct ceph_msg *)0)) { ceph_msg_put(req->r_request); } else { } if ((unsigned long )req->r_reply != (unsigned long )((struct ceph_msg *)0)) { ceph_msg_put(req->r_reply); destroy_reply_info(& req->r_reply_info); } else { } if ((unsigned long )req->r_inode != (unsigned long )((struct inode *)0)) { tmp = ceph_inode(req->r_inode); ceph_put_cap_refs(tmp, 1); iput(req->r_inode); } else { } if ((unsigned long )req->r_locked_dir != (unsigned long )((struct inode *)0)) { tmp___0 = ceph_inode(req->r_locked_dir); ceph_put_cap_refs(tmp___0, 1); } else { } if ((unsigned long )req->r_target_inode != (unsigned long )((struct inode *)0)) { iput(req->r_target_inode); } else { } if ((unsigned long )req->r_dentry != (unsigned long )((struct dentry *)0)) { dput(req->r_dentry); } else { } if ((unsigned long )req->r_old_dentry != (unsigned long )((struct dentry *)0)) { tmp___1 = ceph_inode(req->r_old_dentry_dir); ceph_put_cap_refs(tmp___1, 1); dput(req->r_old_dentry); iput(req->r_old_dentry_dir); } else { } kfree((void const *)req->r_path1); kfree((void const *)req->r_path2); put_request_session(req); ceph_unreserve_caps(req->r_mdsc, & req->r_caps_reservation); kfree((void const *)req); return; } } static struct ceph_mds_request *__lookup_request(struct ceph_mds_client *mdsc , u64 tid ) { struct ceph_mds_request *req ; struct rb_node *n ; struct rb_node const *__mptr ; { n = mdsc->request_tree.rb_node; goto ldv_29681; ldv_29680: __mptr = (struct rb_node const *)n; req = (struct ceph_mds_request *)__mptr + 0xfffffffffffffff8UL; if (req->r_tid > tid) { n = n->rb_left; } else if (req->r_tid < tid) { n = n->rb_right; } else { ceph_mdsc_get_request(req); return (req); } ldv_29681: ; if ((unsigned long )n != (unsigned long )((struct rb_node *)0)) { goto ldv_29680; } else { } return (0); } } static void __insert_request(struct ceph_mds_client *mdsc , struct ceph_mds_request *new ) { struct rb_node **p ; struct rb_node *parent ; struct ceph_mds_request *req ; struct rb_node const *__mptr ; { p = & mdsc->request_tree.rb_node; parent = 0; req = 0; goto ldv_29694; ldv_29693: parent = *p; __mptr = (struct rb_node const *)parent; req = (struct ceph_mds_request *)__mptr + 0xfffffffffffffff8UL; if (new->r_tid < req->r_tid) { p = & (*p)->rb_left; } else if (new->r_tid > req->r_tid) { p = & (*p)->rb_right; } else { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"), "i" (628), "i" (12UL)); ldv_29692: ; goto ldv_29692; } ldv_29694: ; if ((unsigned long )*p != (unsigned long )((struct rb_node *)0)) { goto ldv_29693; } else { } rb_link_node(& new->r_node, parent, p); rb_insert_color(& new->r_node, & mdsc->request_tree); return; } } static void __register_request(struct ceph_mds_client *mdsc , struct ceph_mds_request *req , struct inode *dir ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; int tmp___1 ; struct task_struct *tmp___2 ; int tmp___3 ; struct task_struct *tmp___4 ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___5 ; { mdsc->last_tid = mdsc->last_tid + 1ULL; req->r_tid = mdsc->last_tid; if (req->r_num_caps != 0) { ceph_reserve_caps(mdsc, & req->r_caps_reservation, req->r_num_caps); } else { } descriptor.modname = "ceph"; descriptor.function = "__register_request"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __register_request %p tid %lld\n"; descriptor.lineno = 649U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __register_request %p tid %lld\n", 3, (char *)" ", tmp, 649, req, req->r_tid); } else { } ceph_mdsc_get_request(req); __insert_request(mdsc, req); tmp___1 = debug_lockdep_rcu_enabled(); tmp___2 = get_current(); req->r_uid = (tmp___2->cred)->fsuid; tmp___3 = debug_lockdep_rcu_enabled(); tmp___4 = get_current(); req->r_gid = (tmp___4->cred)->fsgid; if ((unsigned long )dir != (unsigned long )((struct inode *)0)) { tmp___5 = ceph_inode(dir); ci = tmp___5; ihold(dir); spin_lock(& ci->i_unsafe_lock); req->r_unsafe_dir = dir; list_add_tail(& req->r_unsafe_dir_item, & ci->i_unsafe_dirops); spin_unlock(& ci->i_unsafe_lock); } else { } return; } } static void __unregister_request(struct ceph_mds_client *mdsc , struct ceph_mds_request *req ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___1 ; { descriptor.modname = "ceph"; descriptor.function = "__unregister_request"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : __unregister_request %p tid %lld\n"; descriptor.lineno = 670U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : __unregister_request %p tid %lld\n", 3, (char *)" ", tmp, 670, req, req->r_tid); } else { } rb_erase(& req->r_node, & mdsc->request_tree); req->r_node.__rb_parent_color = (unsigned long )(& req->r_node); if ((unsigned long )req->r_unsafe_dir != (unsigned long )((struct inode *)0)) { tmp___1 = ceph_inode(req->r_unsafe_dir); ci = tmp___1; spin_lock(& ci->i_unsafe_lock); list_del_init(& req->r_unsafe_dir_item); spin_unlock(& ci->i_unsafe_lock); iput(req->r_unsafe_dir); req->r_unsafe_dir = 0; } else { } ceph_mdsc_put_request(req); return; } } static struct dentry *get_nonsnap_parent(struct dentry *dentry ) { u64 tmp ; { goto ldv_29719; ldv_29718: dentry = dentry->d_parent; ldv_29719: ; if ((unsigned long )dentry->d_parent != (unsigned long )dentry) { tmp = ceph_snap(dentry->d_inode); if (tmp != 0xfffffffffffffffeULL) { goto ldv_29718; } else { goto ldv_29720; } } else { } ldv_29720: ; return (dentry); } } static int __choose_mds(struct ceph_mds_client *mdsc , struct ceph_mds_request *req ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_cap *cap ; int mode ; int mds ; u32 hash ; bool is_hash ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; bool tmp___1 ; int tmp___2 ; struct dentry *parent ; struct inode *dir ; struct dentry *dn ; struct dentry *tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; u64 tmp___6 ; struct _ddebug descriptor___1 ; char const *tmp___7 ; long tmp___8 ; struct ceph_inode_frag frag ; int found ; u8 r ; struct _ddebug descriptor___2 ; struct ceph_inode_info *tmp___9 ; struct ceph_inode_info *tmp___10 ; char const *tmp___11 ; long tmp___12 ; int tmp___13 ; struct _ddebug descriptor___3 ; struct ceph_inode_info *tmp___14 ; struct ceph_inode_info *tmp___15 ; char const *tmp___16 ; long tmp___17 ; int tmp___18 ; struct rb_node const *__mptr ; struct rb_node *tmp___19 ; struct _ddebug descriptor___4 ; struct ceph_inode_info *tmp___20 ; struct ceph_inode_info *tmp___21 ; char const *tmp___22 ; long tmp___23 ; struct _ddebug descriptor___5 ; char const *tmp___24 ; long tmp___25 ; { mode = req->r_direct_mode; mds = -1; hash = req->r_direct_hash; is_hash = req->r_direct_is_hash; if (req->r_resend_mds >= 0) { tmp___1 = __have_session(mdsc, req->r_resend_mds); if ((int )tmp___1) { goto _L; } else { tmp___2 = ceph_mdsmap_get_state(mdsc->mdsmap, req->r_resend_mds); if (tmp___2 > 0) { _L: /* CIL Label */ descriptor.modname = "ceph"; descriptor.function = "__choose_mds"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : choose_mds using resend_mds mds%d\n"; descriptor.lineno = 728U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : choose_mds using resend_mds mds%d\n", 3, (char *)" ", tmp, 728, req->r_resend_mds); } else { } return (req->r_resend_mds); } else { } } } else { } if (mode == 1) { goto random; } else { } inode = 0; if ((unsigned long )req->r_inode != (unsigned long )((struct inode *)0)) { inode = req->r_inode; } else if ((unsigned long )req->r_dentry != (unsigned long )((struct dentry *)0)) { parent = (req->r_dentry)->d_parent; dir = parent->d_inode; if ((unsigned long )dir->i_sb != (unsigned long )(mdsc->fsc)->sb) { inode = (req->r_dentry)->d_inode; } else { tmp___6 = ceph_snap(dir); if (tmp___6 != 0xfffffffffffffffeULL) { tmp___3 = get_nonsnap_parent(parent); dn = tmp___3; inode = dn->d_inode; descriptor___0.modname = "ceph"; descriptor___0.function = "__choose_mds"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : __choose_mds using nonsnap parent %p\n"; descriptor___0.lineno = 751U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : __choose_mds using nonsnap parent %p\n", 3, (char *)" ", tmp___4, 751, inode); } else { } } else if ((unsigned long )(req->r_dentry)->d_inode != (unsigned long )((struct inode *)0)) { inode = (req->r_dentry)->d_inode; } else { inode = dir; hash = ceph_dentry_hash(dir, req->r_dentry); is_hash = 1; } } } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "__choose_mds"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : __choose_mds %p is_hash=%d (%d) mode %d\n"; descriptor___1.lineno = 764U; descriptor___1.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : __choose_mds %p is_hash=%d (%d) mode %d\n", 3, (char *)" ", tmp___7, 764, inode, (int )is_hash, (int )hash, mode); } else { } if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { goto random; } else { } ci = ceph_inode(inode); if ((int )is_hash && ((int )inode->i_mode & 61440) == 16384) { ceph_choose_frag(ci, hash, & frag, & found); if (found != 0) { if (mode == 0 && frag.ndist > 0) { get_random_bytes((void *)(& r), 1); r = (u8 )((int )r % frag.ndist); mds = frag.dist[(int )r]; descriptor___2.modname = "ceph"; descriptor___2.function = "__choose_mds"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : choose_mds %p %llx.%llx frag %u mds%d (%d/%d)\n"; descriptor___2.lineno = 786U; descriptor___2.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___9 = ceph_inode(inode); tmp___10 = ceph_inode(inode); tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : choose_mds %p %llx.%llx frag %u mds%d (%d/%d)\n", 3, (char *)" ", tmp___11, 786, inode, tmp___10->i_vino.ino, tmp___9->i_vino.snap, frag.frag, mds, (int )r, frag.ndist); } else { } tmp___13 = ceph_mdsmap_get_state(mdsc->mdsmap, mds); if (tmp___13 > 12) { return (mds); } else { } } else { } mode = 2; if (frag.mds >= 0) { mds = frag.mds; descriptor___3.modname = "ceph"; descriptor___3.function = "__choose_mds"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : choose_mds %p %llx.%llx frag %u mds%d (auth)\n"; descriptor___3.lineno = 801U; descriptor___3.flags = 0U; tmp___17 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___17 != 0L) { tmp___14 = ceph_inode(inode); tmp___15 = ceph_inode(inode); tmp___16 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : choose_mds %p %llx.%llx frag %u mds%d (auth)\n", 3, (char *)" ", tmp___16, 801, inode, tmp___15->i_vino.ino, tmp___14->i_vino.snap, frag.frag, mds); } else { } tmp___18 = ceph_mdsmap_get_state(mdsc->mdsmap, mds); if (tmp___18 > 12) { return (mds); } else { } } else { } } else { } } else { } spin_lock(& ci->i_ceph_lock); cap = 0; if (mode == 2) { cap = ci->i_auth_cap; } else { } if ((unsigned long )cap == (unsigned long )((struct ceph_cap *)0) && (unsigned long )ci->i_caps.rb_node != (unsigned long )((struct rb_node *)0)) { tmp___19 = rb_first((struct rb_root const *)(& ci->i_caps)); __mptr = (struct rb_node const *)tmp___19; cap = (struct ceph_cap *)__mptr + 0xfffffffffffffff8UL; } else { } if ((unsigned long )cap == (unsigned long )((struct ceph_cap *)0)) { spin_unlock(& ci->i_ceph_lock); goto random; } else { } mds = (cap->session)->s_mds; descriptor___4.modname = "ceph"; descriptor___4.function = "__choose_mds"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : choose_mds %p %llx.%llx mds%d (%scap %p)\n"; descriptor___4.lineno = 822U; descriptor___4.flags = 0U; tmp___23 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___23 != 0L) { tmp___20 = ceph_inode(inode); tmp___21 = ceph_inode(inode); tmp___22 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : choose_mds %p %llx.%llx mds%d (%scap %p)\n", 3, (char *)" ", tmp___22, 822, inode, tmp___21->i_vino.ino, tmp___20->i_vino.snap, mds, (unsigned long )ci->i_auth_cap == (unsigned long )cap ? (char *)"auth " : (char *)"", cap); } else { } spin_unlock(& ci->i_ceph_lock); return (mds); random: mds = ceph_mdsmap_get_random_mds(mdsc->mdsmap); descriptor___5.modname = "ceph"; descriptor___5.function = "__choose_mds"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : choose_mds chose random mds%d\n"; descriptor___5.lineno = 828U; descriptor___5.flags = 0U; tmp___25 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___25 != 0L) { tmp___24 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : choose_mds chose random mds%d\n", 3, (char *)" ", tmp___24, 828, mds); } else { } return (mds); } } static struct ceph_msg *create_session_msg(u32 op , u64 seq ) { struct ceph_msg *msg ; struct ceph_mds_session_head *h ; { msg = ceph_msg_new(22, 28, 80U, 0); if ((unsigned long )msg == (unsigned long )((struct ceph_msg *)0)) { printk("\vceph: create_session_msg ENOMEM creating msg\n"); return (0); } else { } h = (struct ceph_mds_session_head *)msg->front.iov_base; h->op = op; h->seq = seq; return (msg); } } static int __open_session(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_msg *msg ; int mstate ; int mds ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; long tmp___1 ; { mds = session->s_mds; mstate = ceph_mdsmap_get_state(mdsc->mdsmap, mds); descriptor.modname = "ceph"; descriptor.function = "__open_session"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : open_session to mds%d (%s)\n"; descriptor.lineno = 868U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp = ceph_mds_state_name(mstate); tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : open_session to mds%d (%s)\n", 3, (char *)" ", tmp___0, 868, mds, tmp); } else { } session->s_state = 2; session->s_renew_requested = jiffies; msg = create_session_msg(0U, session->s_seq); if ((unsigned long )msg == (unsigned long )((struct ceph_msg *)0)) { return (-12); } else { } ceph_con_send(& session->s_con, msg); return (0); } } static void __open_export_target_sessions(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_mds_info *mi ; struct ceph_mds_session *ts ; int i ; int mds ; int target ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; char const *tmp___3 ; long tmp___4 ; { mds = session->s_mds; if ((u32 )mds >= (mdsc->mdsmap)->m_max_mds) { return; } else { } mi = (mdsc->mdsmap)->m_info + (unsigned long )mds; descriptor.modname = "ceph"; descriptor.function = "__open_export_target_sessions"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : open_export_target_sessions for mds%d (%d targets)\n"; descriptor.lineno = 897U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : open_export_target_sessions for mds%d (%d targets)\n", 3, (char *)" ", tmp, 897, session->s_mds, mi->num_export_targets); } else { } i = 0; goto ldv_29777; ldv_29776: target = (int )*(mi->export_targets + (unsigned long )i); ts = __ceph_lookup_mds_session(mdsc, target); if ((unsigned long )ts == (unsigned long )((struct ceph_mds_session *)0)) { ts = register_session(mdsc, target); tmp___1 = IS_ERR((void const *)ts); if (tmp___1 != 0L) { return; } else { } } else { } if (session->s_state == 1 || session->s_state == 5) { __open_session(mdsc, session); } else { descriptor___0.modname = "ceph"; descriptor___0.function = "__open_export_target_sessions"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mds%d target mds%d %p is %s\n"; descriptor___0.lineno = 912U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___2 = session_state_name(ts->s_state); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mds%d target mds%d %p is %s\n", 3, (char *)" ", tmp___3, 912, session->s_mds, i, ts, tmp___2); } else { } } ceph_put_mds_session(ts); i = i + 1; ldv_29777: ; if (mi->num_export_targets > i) { goto ldv_29776; } else { } return; } } void ceph_mdsc_open_export_target_sessions(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { { ldv_mutex_lock_169(& mdsc->mutex); __open_export_target_sessions(mdsc, session); ldv_mutex_unlock_170(& mdsc->mutex); return; } } static void cleanup_cap_releases(struct ceph_mds_session *session ) { struct ceph_msg *msg ; struct list_head const *__mptr ; int tmp ; struct list_head const *__mptr___0 ; int tmp___0 ; { spin_lock(& session->s_cap_lock); goto ldv_29790; ldv_29789: __mptr = (struct list_head const *)session->s_cap_releases.next; msg = (struct ceph_msg *)__mptr + 0xffffffffffffff80UL; list_del_init(& msg->list_head); ceph_msg_put(msg); ldv_29790: tmp = list_empty((struct list_head const *)(& session->s_cap_releases)); if (tmp == 0) { goto ldv_29789; } else { } goto ldv_29795; ldv_29794: __mptr___0 = (struct list_head const *)session->s_cap_releases_done.next; msg = (struct ceph_msg *)__mptr___0 + 0xffffffffffffff80UL; list_del_init(& msg->list_head); ceph_msg_put(msg); ldv_29795: tmp___0 = list_empty((struct list_head const *)(& session->s_cap_releases_done)); if (tmp___0 == 0) { goto ldv_29794; } else { } spin_unlock(& session->s_cap_lock); return; } } static int iterate_session_caps(struct ceph_mds_session *session , int (*cb)(struct inode * , struct ceph_cap * , void * ) , void *arg ) { struct list_head *p ; struct ceph_cap *cap ; struct inode *inode ; struct inode *last_inode ; struct ceph_cap *old_cap ; int ret ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; long tmp___3 ; { last_inode = 0; old_cap = 0; descriptor.modname = "ceph"; descriptor.function = "iterate_session_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : iterate_session_caps %p mds%d\n"; descriptor.lineno = 968U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : iterate_session_caps %p mds%d\n", 3, (char *)" ", tmp, 968, session, session->s_mds); } else { } spin_lock(& session->s_cap_lock); p = session->s_caps.next; goto ldv_29815; ldv_29819: __mptr = (struct list_head const *)p; cap = (struct ceph_cap *)__mptr + 0xffffffffffffffd8UL; inode = igrab(& (cap->ci)->vfs_inode); if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { p = p->next; goto ldv_29815; } else { } session->s_cap_iterator = cap; spin_unlock(& session->s_cap_lock); if ((unsigned long )last_inode != (unsigned long )((struct inode *)0)) { iput(last_inode); last_inode = 0; } else { } if ((unsigned long )old_cap != (unsigned long )((struct ceph_cap *)0)) { ceph_put_cap(session->s_mdsc, old_cap); old_cap = 0; } else { } ret = (*cb)(inode, cap, arg); last_inode = inode; spin_lock(& session->s_cap_lock); p = p->next; if ((unsigned long )cap->ci == (unsigned long )((struct ceph_inode_info *)0)) { descriptor___0.modname = "ceph"; descriptor___0.function = "iterate_session_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : iterate_session_caps finishing cap %p removal\n"; descriptor___0.lineno = 997U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : iterate_session_caps finishing cap %p removal\n", 3, (char *)" ", tmp___1, 997, cap); } else { } tmp___3 = ldv__builtin_expect((unsigned long )cap->session != (unsigned long )session, 0L); if (tmp___3 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"), "i" (998), "i" (12UL)); ldv_29817: ; goto ldv_29817; } else { } list_del_init(& cap->session_caps); session->s_nr_caps = session->s_nr_caps - 1; cap->session = 0; old_cap = cap; } else { } if (ret < 0) { goto out; } else { } ldv_29815: ; if ((unsigned long )(& session->s_caps) != (unsigned long )p) { goto ldv_29819; } else { } ret = 0; out: session->s_cap_iterator = 0; spin_unlock(& session->s_cap_lock); if ((unsigned long )last_inode != (unsigned long )((struct inode *)0)) { iput(last_inode); } else { } if ((unsigned long )old_cap != (unsigned long )((struct ceph_cap *)0)) { ceph_put_cap(session->s_mdsc, old_cap); } else { } return (ret); } } static int remove_session_caps_cb(struct inode *inode , struct ceph_cap *cap , void *arg ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int drop ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; struct ceph_mds_client *mdsc ; struct ceph_fs_client *tmp___2 ; u64 tmp___3 ; char const *tmp___4 ; int tmp___5 ; u64 tmp___6 ; char const *tmp___7 ; int tmp___8 ; u64 tmp___9 ; bool tmp___10 ; int tmp___11 ; int tmp___12 ; { tmp = ceph_inode(inode); ci = tmp; drop = 0; descriptor.modname = "ceph"; descriptor.function = "remove_session_caps_cb"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : removing cap %p, ci is %p, inode is %p\n"; descriptor.lineno = 1027U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : removing cap %p, ci is %p, inode is %p\n", 3, (char *)" ", tmp___0, 1027, cap, ci, & ci->vfs_inode); } else { } spin_lock(& ci->i_ceph_lock); __ceph_remove_cap(cap); tmp___10 = __ceph_is_any_real_caps(ci); if (tmp___10) { tmp___11 = 0; } else { tmp___11 = 1; } if (tmp___11) { tmp___2 = ceph_sb_to_client(inode->i_sb); mdsc = tmp___2->mdsc; spin_lock(& mdsc->cap_dirty_lock); tmp___5 = list_empty((struct list_head const *)(& ci->i_dirty_item)); if (tmp___5 == 0) { tmp___3 = ceph_ino(inode); tmp___4 = ceph_cap_string((int )ci->i_dirty_caps); printk("\016ceph: dropping dirty %s state for %p %lld\n", tmp___4, inode, tmp___3); ci->i_dirty_caps = 0U; list_del_init(& ci->i_dirty_item); drop = 1; } else { } tmp___8 = list_empty((struct list_head const *)(& ci->i_flushing_item)); if (tmp___8 == 0) { tmp___6 = ceph_ino(inode); tmp___7 = ceph_cap_string((int )ci->i_flushing_caps); printk("\016ceph: dropping dirty+flushing %s state for %p %lld\n", tmp___7, inode, tmp___6); ci->i_flushing_caps = 0U; list_del_init(& ci->i_flushing_item); mdsc->num_cap_flushing = mdsc->num_cap_flushing - 1; drop = 1; } else { } if (drop != 0 && ci->i_wrbuffer_ref != 0) { tmp___9 = ceph_ino(inode); printk("\016ceph: dropping dirty data for %p %lld\n", inode, tmp___9); ci->i_wrbuffer_ref = 0; ci->i_wrbuffer_ref_head = 0; drop = drop + 1; } else { } spin_unlock(& mdsc->cap_dirty_lock); } else { } spin_unlock(& ci->i_ceph_lock); goto ldv_29832; ldv_29831: iput(inode); ldv_29832: tmp___12 = drop; drop = drop - 1; if (tmp___12 != 0) { goto ldv_29831; } else { } return (0); } } static void remove_session_caps(struct ceph_mds_session *session ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; long tmp___1 ; int tmp___2 ; long tmp___3 ; { descriptor.modname = "ceph"; descriptor.function = "remove_session_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : remove_session_caps on %p\n"; descriptor.lineno = 1072U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : remove_session_caps on %p\n", 3, (char *)" ", tmp, 1072, session); } else { } iterate_session_caps(session, & remove_session_caps_cb, 0); tmp___1 = ldv__builtin_expect(session->s_nr_caps > 0, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"), "i" (1074), "i" (12UL)); ldv_29839: ; goto ldv_29839; } else { } tmp___2 = list_empty((struct list_head const *)(& session->s_cap_flushing)); tmp___3 = ldv__builtin_expect(tmp___2 == 0, 0L); if (tmp___3 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"), "i" (1075), "i" (12UL)); ldv_29840: ; goto ldv_29840; } else { } cleanup_cap_releases(session); return; } } static int wake_up_session_cb(struct inode *inode , struct ceph_cap *cap , void *arg ) { struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; { tmp = ceph_inode(inode); ci = tmp; __wake_up(& ci->i_cap_wq, 3U, 0, 0); if ((unsigned long )arg != (unsigned long )((void *)0)) { spin_lock(& ci->i_ceph_lock); ci->i_wanted_max_size = 0ULL; ci->i_requested_max_size = 0ULL; spin_unlock(& ci->i_ceph_lock); } else { } return (0); } } static void wake_up_session_caps(struct ceph_mds_session *session , int reconnect ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { descriptor.modname = "ceph"; descriptor.function = "wake_up_session_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : wake_up_session_caps %p mds%d\n"; descriptor.lineno = 1103U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : wake_up_session_caps %p mds%d\n", 3, (char *)" ", tmp, 1103, session, session->s_mds); } else { } iterate_session_caps(session, & wake_up_session_cb, (void *)((unsigned long )reconnect)); return; } } static int send_renew_caps(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_msg *msg ; int state ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; long tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; char const *tmp___3 ; long tmp___4 ; { if ((long )jiffies - (long )session->s_cap_ttl >= 0L && (long )session->s_cap_ttl - (long )session->s_renew_requested >= 0L) { printk("\016ceph: mds%d caps stale\n", session->s_mds); } else { } session->s_renew_requested = jiffies; state = ceph_mdsmap_get_state(mdsc->mdsmap, session->s_mds); if (state <= 9) { descriptor.modname = "ceph"; descriptor.function = "send_renew_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : send_renew_caps ignoring mds%d (%s)\n"; descriptor.lineno = 1130U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp = ceph_mds_state_name(state); tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : send_renew_caps ignoring mds%d (%s)\n", 3, (char *)" ", tmp___0, 1130, session->s_mds, tmp); } else { } return (0); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "send_renew_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : send_renew_caps to mds%d (%s)\n"; descriptor___0.lineno = 1135U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___2 = ceph_mds_state_name(state); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : send_renew_caps to mds%d (%s)\n", 3, (char *)" ", tmp___3, 1135, session->s_mds, tmp___2); } else { } session->s_renew_seq = session->s_renew_seq + 1ULL; msg = create_session_msg(4U, session->s_renew_seq); if ((unsigned long )msg == (unsigned long )((struct ceph_msg *)0)) { return (-12); } else { } ceph_con_send(& session->s_con, msg); return (0); } } static void renewed_caps(struct ceph_mds_client *mdsc , struct ceph_mds_session *session , int is_renew ) { int was_stale ; int wake ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { wake = 0; spin_lock(& session->s_cap_lock); was_stale = is_renew != 0 && (long )jiffies - (long )session->s_cap_ttl >= 0L; session->s_cap_ttl = session->s_renew_requested + (unsigned long )((mdsc->mdsmap)->m_session_timeout * 250U); if (was_stale != 0) { if ((long )jiffies - (long )session->s_cap_ttl < 0L) { printk("\016ceph: mds%d caps renewed\n", session->s_mds); wake = 1; } else { printk("\016ceph: mds%d caps still stale\n", session->s_mds); } } else { } descriptor.modname = "ceph"; descriptor.function = "renewed_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : renewed_caps mds%d ttl now %lu, was %s, now %s\n"; descriptor.lineno = 1171U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : renewed_caps mds%d ttl now %lu, was %s, now %s\n", 3, (char *)" ", tmp, 1171, session->s_mds, session->s_cap_ttl, was_stale != 0 ? (char *)"stale" : (char *)"fresh", (long )jiffies - (long )session->s_cap_ttl < 0L ? (char *)"stale" : (char *)"fresh"); } else { } spin_unlock(& session->s_cap_lock); if (wake != 0) { wake_up_session_caps(session, 0); } else { } return; } } static int request_close_session(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_msg *msg ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; long tmp___1 ; { descriptor.modname = "ceph"; descriptor.function = "request_close_session"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : request_close_session mds%d state %s seq %lld\n"; descriptor.lineno = 1188U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp = session_state_name(session->s_state); tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : request_close_session mds%d state %s seq %lld\n", 3, (char *)" ", tmp___0, 1188, session->s_mds, tmp, session->s_seq); } else { } msg = create_session_msg(2U, session->s_seq); if ((unsigned long )msg == (unsigned long )((struct ceph_msg *)0)) { return (-12); } else { } ceph_con_send(& session->s_con, msg); return (0); } } static int __close_session(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { int tmp ; { if (session->s_state > 4) { return (0); } else { } session->s_state = 5; tmp = request_close_session(mdsc, session); return (tmp); } } static int trim_caps_cb(struct inode *inode , struct ceph_cap *cap , void *arg ) { struct ceph_mds_session *session ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; int used ; int oissued ; int mine ; struct _ddebug descriptor ; char const *tmp___0 ; char const *tmp___1 ; char const *tmp___2 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___0 ; int tmp___5 ; char const *tmp___6 ; long tmp___7 ; { session = (struct ceph_mds_session *)arg; tmp = ceph_inode(inode); ci = tmp; if (session->s_trim_caps <= 0) { return (-1); } else { } spin_lock(& ci->i_ceph_lock); mine = cap->issued | cap->implemented; used = __ceph_caps_used(ci); oissued = __ceph_caps_issued_other(ci, cap); descriptor.modname = "ceph"; descriptor.function = "trim_caps_cb"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : trim_caps_cb %p cap %p mine %s oissued %s used %s\n"; descriptor.lineno = 1234U; descriptor.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___0 = ceph_cap_string(used); tmp___1 = ceph_cap_string(oissued); tmp___2 = ceph_cap_string(mine); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : trim_caps_cb %p cap %p mine %s oissued %s used %s\n", 3, (char *)" ", tmp___3, 1234, inode, cap, tmp___2, tmp___1, tmp___0); } else { } if (ci->i_dirty_caps != 0U) { goto out; } else { } if (((~ oissued & used) & mine) != 0) { goto out; } else { } session->s_trim_caps = session->s_trim_caps - 1; if (oissued != 0) { __ceph_remove_cap(cap); } else { spin_unlock(& ci->i_ceph_lock); d_prune_aliases(inode); descriptor___0.modname = "ceph"; descriptor___0.function = "trim_caps_cb"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : trim_caps_cb %p cap %p pruned, count now %d\n"; descriptor___0.lineno = 1249U; descriptor___0.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___5 = atomic_read((atomic_t const *)(& inode->i_count)); tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : trim_caps_cb %p cap %p pruned, count now %d\n", 3, (char *)" ", tmp___6, 1249, inode, cap, tmp___5); } else { } return (0); } out: spin_unlock(& ci->i_ceph_lock); return (0); } } static int trim_caps(struct ceph_mds_client *mdsc , struct ceph_mds_session *session , int max_caps ) { int trim_caps___0 ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; { trim_caps___0 = session->s_nr_caps - max_caps; descriptor.modname = "ceph"; descriptor.function = "trim_caps"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : trim_caps mds%d start: %d / %d, trim %d\n"; descriptor.lineno = 1268U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : trim_caps mds%d start: %d / %d, trim %d\n", 3, (char *)" ", tmp, 1268, session->s_mds, session->s_nr_caps, max_caps, trim_caps___0); } else { } if (trim_caps___0 > 0) { session->s_trim_caps = trim_caps___0; iterate_session_caps(session, & trim_caps_cb, (void *)session); descriptor___0.modname = "ceph"; descriptor___0.function = "trim_caps"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : trim_caps mds%d done: %d / %d, trimmed %d\n"; descriptor___0.lineno = 1274U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : trim_caps mds%d done: %d / %d, trimmed %d\n", 3, (char *)" ", tmp___1, 1274, session->s_mds, session->s_nr_caps, max_caps, trim_caps___0 - session->s_trim_caps); } else { } session->s_trim_caps = 0; } else { } return (0); } } int ceph_add_cap_releases(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_msg *msg ; struct ceph_msg *partial ; struct ceph_mds_cap_release *head ; int err ; int extra ; int num ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; struct _ddebug descriptor___1 ; char const *tmp___4 ; long tmp___5 ; struct _ddebug descriptor___2 ; char const *tmp___6 ; long tmp___7 ; { partial = 0; err = -12; extra = ((mdsc->fsc)->mount_options)->cap_release_safety; descriptor.modname = "ceph"; descriptor.function = "ceph_add_cap_releases"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : add_cap_releases %p mds%d extra %d\n"; descriptor.lineno = 1297U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : add_cap_releases %p mds%d extra %d\n", 3, (char *)" ", tmp, 1297, session, session->s_mds, extra); } else { } spin_lock(& session->s_cap_lock); tmp___3 = list_empty((struct list_head const *)(& session->s_cap_releases)); if (tmp___3 == 0) { __mptr = (struct list_head const *)session->s_cap_releases.next; msg = (struct ceph_msg *)__mptr + 0xffffffffffffff80UL; head = (struct ceph_mds_cap_release *)msg->front.iov_base; num = (int )head->num; if (num != 0) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_add_cap_releases"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : partial %p with (%d/%d)\n"; descriptor___0.lineno = 1309U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : partial %p with (%d/%d)\n", 3, (char *)" ", tmp___1, 1309, msg, num, 170); } else { } extra = (int )(((unsigned int )extra - (unsigned int )num) + 170U); partial = msg; } else { } } else { } goto ldv_29953; ldv_29952: spin_unlock(& session->s_cap_lock); msg = ceph_msg_new(787, 4096, 80U, 0); if ((unsigned long )msg == (unsigned long )((struct ceph_msg *)0)) { goto out_unlocked; } else { } descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_add_cap_releases"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : add_cap_releases %p msg %p now %d\n"; descriptor___1.lineno = 1321U; descriptor___1.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : add_cap_releases %p msg %p now %d\n", 3, (char *)" ", tmp___4, 1321, session, msg, (int )msg->front.iov_len); } else { } head = (struct ceph_mds_cap_release *)msg->front.iov_base; head->num = 0U; msg->front.iov_len = 4UL; spin_lock(& session->s_cap_lock); list_add(& msg->list_head, & session->s_cap_releases); session->s_num_cap_releases = (int )((unsigned int )session->s_num_cap_releases + 170U); ldv_29953: ; if (session->s_num_cap_releases < session->s_nr_caps + extra) { goto ldv_29952; } else { } if ((unsigned long )partial != (unsigned long )((struct ceph_msg *)0)) { head = (struct ceph_mds_cap_release *)partial->front.iov_base; num = (int )head->num; descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_add_cap_releases"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : queueing partial %p with %d/%d\n"; descriptor___2.lineno = 1334U; descriptor___2.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : queueing partial %p with %d/%d\n", 3, (char *)" ", tmp___6, 1334, partial, num, 170); } else { } list_move_tail(& partial->list_head, & session->s_cap_releases_done); session->s_num_cap_releases = (int )(((unsigned int )session->s_num_cap_releases + (unsigned int )num) - 170U); } else { } err = 0; spin_unlock(& session->s_cap_lock); out_unlocked: ; return (err); } } static int check_cap_flush(struct ceph_mds_client *mdsc , u64 want_flush_seq ) { int mds ; int ret ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct ceph_mds_session *session ; struct ceph_inode_info *ci ; struct list_head const *__mptr ; struct inode *inode ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; struct _ddebug descriptor___1 ; char const *tmp___4 ; long tmp___5 ; { ret = 1; descriptor.modname = "ceph"; descriptor.function = "check_cap_flush"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : check_cap_flush want %lld\n"; descriptor.lineno = 1354U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : check_cap_flush want %lld\n", 3, (char *)" ", tmp, 1354, want_flush_seq); } else { } ldv_mutex_lock_171(& mdsc->mutex); mds = 0; goto ldv_29972; ldv_29971: session = *(mdsc->sessions + (unsigned long )mds); if ((unsigned long )session == (unsigned long )((struct ceph_mds_session *)0)) { goto ldv_29965; } else { } get_session(session); ldv_mutex_unlock_172(& mdsc->mutex); ldv_mutex_lock_173(& session->s_mutex); tmp___3 = list_empty((struct list_head const *)(& session->s_cap_flushing)); if (tmp___3 == 0) { __mptr = (struct list_head const *)session->s_cap_flushing.next; ci = (struct ceph_inode_info *)__mptr + 0xfffffffffffffe10UL; inode = & ci->vfs_inode; spin_lock(& ci->i_ceph_lock); if (ci->i_cap_flush_seq <= want_flush_seq) { descriptor___0.modname = "ceph"; descriptor___0.function = "check_cap_flush"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : check_cap_flush still flushing %p seq %lld <= %lld to mds%d\n"; descriptor___0.lineno = 1377U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : check_cap_flush still flushing %p seq %lld <= %lld to mds%d\n", 3, (char *)" ", tmp___1, 1377, inode, ci->i_cap_flush_seq, want_flush_seq, session->s_mds); } else { } ret = 0; } else { } spin_unlock(& ci->i_ceph_lock); } else { } ldv_mutex_unlock_174(& session->s_mutex); ceph_put_mds_session(session); if (ret == 0) { return (ret); } else { } ldv_mutex_lock_175(& mdsc->mutex); ldv_29965: mds = mds + 1; ldv_29972: ; if (ret != 0 && mdsc->max_sessions > mds) { goto ldv_29971; } else { } ldv_mutex_unlock_176(& mdsc->mutex); descriptor___1.modname = "ceph"; descriptor___1.function = "check_cap_flush"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : check_cap_flush ok, flushed thru %lld\n"; descriptor___1.lineno = 1391U; descriptor___1.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : check_cap_flush ok, flushed thru %lld\n", 3, (char *)" ", tmp___4, 1391, want_flush_seq); } else { } return (ret); } } void ceph_send_cap_releases(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_msg *msg ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_send_cap_releases"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : send_cap_releases mds%d\n"; descriptor.lineno = 1403U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : send_cap_releases mds%d\n", 3, (char *)" ", tmp, 1403, session->s_mds); } else { } spin_lock(& session->s_cap_lock); goto ldv_29986; ldv_29985: __mptr = (struct list_head const *)session->s_cap_releases_done.next; msg = (struct ceph_msg *)__mptr + 0xffffffffffffff80UL; list_del_init(& msg->list_head); spin_unlock(& session->s_cap_lock); msg->hdr.front_len = (unsigned int )msg->front.iov_len; descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_send_cap_releases"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : send_cap_releases mds%d %p\n"; descriptor___0.lineno = 1411U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : send_cap_releases mds%d %p\n", 3, (char *)" ", tmp___1, 1411, session->s_mds, msg); } else { } ceph_con_send(& session->s_con, msg); spin_lock(& session->s_cap_lock); ldv_29986: tmp___3 = list_empty((struct list_head const *)(& session->s_cap_releases_done)); if (tmp___3 == 0) { goto ldv_29985; } else { } spin_unlock(& session->s_cap_lock); return; } } static void discard_cap_releases(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_msg *msg ; struct ceph_mds_cap_release *head ; unsigned int num ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct list_head const *__mptr___0 ; struct _ddebug descriptor___1 ; char const *tmp___3 ; long tmp___4 ; int tmp___5 ; { descriptor.modname = "ceph"; descriptor.function = "discard_cap_releases"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : discard_cap_releases mds%d\n"; descriptor.lineno = 1425U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : discard_cap_releases mds%d\n", 3, (char *)" ", tmp, 1425, session->s_mds); } else { } spin_lock(& session->s_cap_lock); __mptr = (struct list_head const *)session->s_cap_releases.next; msg = (struct ceph_msg *)__mptr + 0xffffffffffffff80UL; head = (struct ceph_mds_cap_release *)msg->front.iov_base; num = head->num; descriptor___0.modname = "ceph"; descriptor___0.function = "discard_cap_releases"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : discard_cap_releases mds%d %p %u\n"; descriptor___0.lineno = 1433U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : discard_cap_releases mds%d %p %u\n", 3, (char *)" ", tmp___1, 1433, session->s_mds, msg, num); } else { } head->num = 0U; session->s_num_cap_releases = (int )((unsigned int )session->s_num_cap_releases + num); goto ldv_30004; ldv_30003: __mptr___0 = (struct list_head const *)session->s_cap_releases_done.next; msg = (struct ceph_msg *)__mptr___0 + 0xffffffffffffff80UL; list_del_init(& msg->list_head); head = (struct ceph_mds_cap_release *)msg->front.iov_base; num = head->num; descriptor___1.modname = "ceph"; descriptor___1.function = "discard_cap_releases"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : discard_cap_releases mds%d %p %u\n"; descriptor___1.lineno = 1446U; descriptor___1.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : discard_cap_releases mds%d %p %u\n", 3, (char *)" ", tmp___3, 1446, session->s_mds, msg, num); } else { } session->s_num_cap_releases = (int )((unsigned int )session->s_num_cap_releases + num); head->num = 0U; msg->front.iov_len = 4UL; list_add(& msg->list_head, & session->s_cap_releases); ldv_30004: tmp___5 = list_empty((struct list_head const *)(& session->s_cap_releases_done)); if (tmp___5 == 0) { goto ldv_30003; } else { } spin_unlock(& session->s_cap_lock); return; } } struct ceph_mds_request *ceph_mdsc_create_request(struct ceph_mds_client *mdsc , int op , int mode ) { struct ceph_mds_request *req ; void *tmp ; void *tmp___0 ; struct lock_class_key __key ; { tmp = kzalloc(1008UL, 80U); req = (struct ceph_mds_request *)tmp; if ((unsigned long )req == (unsigned long )((struct ceph_mds_request *)0)) { tmp___0 = ERR_PTR(-12L); return ((struct ceph_mds_request *)tmp___0); } else { } __mutex_init(& req->r_fill_mutex, "&req->r_fill_mutex", & __key); req->r_mdsc = mdsc; req->r_started = jiffies; req->r_resend_mds = -1; INIT_LIST_HEAD(& req->r_unsafe_dir_item); req->r_fmode = -1; kref_init(& req->r_kref); INIT_LIST_HEAD(& req->r_wait); init_completion(& req->r_completion); init_completion(& req->r_safe_completion); INIT_LIST_HEAD(& req->r_unsafe_item); req->r_op = op; req->r_direct_mode = mode; return (req); } } static struct ceph_mds_request *__get_oldest_req(struct ceph_mds_client *mdsc ) { struct rb_node const *__mptr ; struct rb_node *tmp ; { if ((unsigned long )mdsc->request_tree.rb_node == (unsigned long )((struct rb_node *)0)) { return (0); } else { } tmp = rb_first((struct rb_root const *)(& mdsc->request_tree)); __mptr = (struct rb_node const *)tmp; return ((struct ceph_mds_request *)__mptr + 0xfffffffffffffff8UL); } } static u64 __get_oldest_tid(struct ceph_mds_client *mdsc ) { struct ceph_mds_request *req ; struct ceph_mds_request *tmp ; { tmp = __get_oldest_req(mdsc); req = tmp; if ((unsigned long )req != (unsigned long )((struct ceph_mds_request *)0)) { return (req->r_tid); } else { } return (0ULL); } } char *ceph_mdsc_build_path(struct dentry *dentry , int *plen , u64 *base , int stop_on_nosnap ) { struct dentry *temp ; char *path ; int len ; int pos ; unsigned int seq ; void *tmp ; struct inode *inode ; u64 tmp___0 ; u64 tmp___1 ; void *tmp___2 ; void *tmp___3 ; struct inode *inode___0 ; struct _ddebug descriptor ; char const *tmp___4 ; long tmp___5 ; u64 tmp___6 ; u64 tmp___7 ; int tmp___8 ; struct _ddebug descriptor___0 ; char const *tmp___9 ; long tmp___10 ; { if ((unsigned long )dentry == (unsigned long )((struct dentry *)0)) { tmp = ERR_PTR(-22L); return ((char *)tmp); } else { } retry: len = 0; seq = read_seqbegin((seqlock_t const *)(& rename_lock)); rcu_read_lock(); temp = dentry; goto ldv_30037; ldv_30036: inode = temp->d_inode; if ((unsigned long )inode != (unsigned long )((struct inode *)0)) { tmp___1 = ceph_snap(inode); if (tmp___1 == 0xffffffffffffffffULL) { len = len + 1; } else { goto _L; } } else _L: /* CIL Label */ if (stop_on_nosnap != 0 && (unsigned long )inode != (unsigned long )((struct inode *)0)) { tmp___0 = ceph_snap(inode); if (tmp___0 == 0xfffffffffffffffeULL) { goto ldv_30035; } else { len = (int )((temp->d_name.ldv_11489.ldv_11487.len + (u32 )len) + 1U); } } else { len = (int )((temp->d_name.ldv_11489.ldv_11487.len + (u32 )len) + 1U); } temp = temp->d_parent; ldv_30037: ; if ((unsigned long )temp->d_parent != (unsigned long )temp) { goto ldv_30036; } else { } ldv_30035: rcu_read_unlock(); if (len != 0) { len = len - 1; } else { } tmp___2 = kmalloc((size_t )(len + 1), 80U); path = (char *)tmp___2; if ((unsigned long )path == (unsigned long )((char *)0)) { tmp___3 = ERR_PTR(-12L); return ((char *)tmp___3); } else { } pos = len; *(path + (unsigned long )pos) = 0; rcu_read_lock(); temp = dentry; goto ldv_30043; ldv_30042: spin_lock(& temp->d_lock); inode___0 = temp->d_inode; if ((unsigned long )inode___0 != (unsigned long )((struct inode *)0)) { tmp___7 = ceph_snap(inode___0); if (tmp___7 == 0xffffffffffffffffULL) { descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_build_path"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : build_path path+%d: %p SNAPDIR\n"; descriptor.lineno = 1563U; descriptor.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : build_path path+%d: %p SNAPDIR\n", 3, (char *)" ", tmp___4, 1563, pos, temp); } else { } } else { goto _L___1; } } else _L___1: /* CIL Label */ if (stop_on_nosnap != 0 && (unsigned long )inode___0 != (unsigned long )((struct inode *)0)) { tmp___6 = ceph_snap(inode___0); if (tmp___6 == 0xfffffffffffffffeULL) { spin_unlock(& temp->d_lock); goto ldv_30041; } else { goto _L___0; } } else { _L___0: /* CIL Label */ pos = (int )((u32 )pos - temp->d_name.ldv_11489.ldv_11487.len); if (pos < 0) { spin_unlock(& temp->d_lock); goto ldv_30041; } else { } strncpy(path + (unsigned long )pos, (char const *)temp->d_name.name, (__kernel_size_t )temp->d_name.ldv_11489.ldv_11487.len); } spin_unlock(& temp->d_lock); if (pos != 0) { pos = pos - 1; *(path + (unsigned long )pos) = 47; } else { } temp = temp->d_parent; ldv_30043: ; if ((unsigned long )temp->d_parent != (unsigned long )temp && pos != 0) { goto ldv_30042; } else { } ldv_30041: rcu_read_unlock(); if (pos != 0) { printk("\vceph: build_path did not end path lookup where expected, namelen is %d, pos is %d\n", len, pos); kfree((void const *)path); goto retry; } else { tmp___8 = read_seqretry((seqlock_t const *)(& rename_lock), seq); if (tmp___8 != 0) { printk("\vceph: build_path did not end path lookup where expected, namelen is %d, pos is %d\n", len, pos); kfree((void const *)path); goto retry; } else { } } *base = ceph_ino(temp->d_inode); *plen = len; descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_mdsc_build_path"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : build_path on %p %d built %llx \'%.*s\'\n"; descriptor___0.lineno = 1597U; descriptor___0.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : build_path on %p %d built %llx \'%.*s\'\n", 3, (char *)" ", tmp___9, 1597, dentry, dentry->d_count, *base, len, path); } else { } return (path); } } static int build_dentry_path(struct dentry *dentry , char const **ppath , int *ppathlen , u64 *pino , int *pfreepath ) { char *path ; u64 tmp ; long tmp___0 ; long tmp___1 ; { tmp = ceph_snap((dentry->d_parent)->d_inode); if (tmp == 0xfffffffffffffffeULL) { *pino = ceph_ino((dentry->d_parent)->d_inode); *ppath = (char const *)dentry->d_name.name; *ppathlen = (int )dentry->d_name.ldv_11489.ldv_11487.len; return (0); } else { } path = ceph_mdsc_build_path(dentry, ppathlen, pino, 1); tmp___1 = IS_ERR((void const *)path); if (tmp___1 != 0L) { tmp___0 = PTR_ERR((void const *)path); return ((int )tmp___0); } else { } *ppath = (char const *)path; *pfreepath = 1; return (0); } } static int build_inode_path(struct inode *inode , char const **ppath , int *ppathlen , u64 *pino , int *pfreepath ) { struct dentry *dentry ; char *path ; u64 tmp ; long tmp___0 ; long tmp___1 ; { tmp = ceph_snap(inode); if (tmp == 0xfffffffffffffffeULL) { *pino = ceph_ino(inode); *ppathlen = 0; return (0); } else { } dentry = d_find_alias(inode); path = ceph_mdsc_build_path(dentry, ppathlen, pino, 1); dput(dentry); tmp___1 = IS_ERR((void const *)path); if (tmp___1 != 0L) { tmp___0 = PTR_ERR((void const *)path); return ((int )tmp___0); } else { } *ppath = (char const *)path; *pfreepath = 1; return (0); } } static int set_request_path_attr(struct inode *rinode , struct dentry *rdentry , char const *rpath , u64 rino , char const **ppath , int *pathlen , u64 *ino , int *freepath ) { int r ; struct _ddebug descriptor ; u64 tmp ; u64 tmp___0 ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; size_t tmp___5 ; struct _ddebug descriptor___1 ; char const *tmp___6 ; long tmp___7 ; { r = 0; if ((unsigned long )rinode != (unsigned long )((struct inode *)0)) { r = build_inode_path(rinode, ppath, pathlen, ino, freepath); descriptor.modname = "ceph"; descriptor.function = "set_request_path_attr"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : inode %p %llx.%llx\n"; descriptor.lineno = 1657U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp = ceph_snap(rinode); tmp___0 = ceph_ino(rinode); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : inode %p %llx.%llx\n", 3, (char *)" ", tmp___1, 1657, rinode, tmp___0, tmp); } else { } } else if ((unsigned long )rdentry != (unsigned long )((struct dentry *)0)) { r = build_dentry_path(rdentry, ppath, pathlen, ino, freepath); descriptor___0.modname = "ceph"; descriptor___0.function = "set_request_path_attr"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : dentry %p %llx/%.*s\n"; descriptor___0.lineno = 1661U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : dentry %p %llx/%.*s\n", 3, (char *)" ", tmp___3, 1661, rdentry, *ino, *pathlen, *ppath); } else { } } else if ((unsigned long )rpath != (unsigned long )((char const *)0) || rino != 0ULL) { *ino = rino; *ppath = rpath; if ((unsigned long )rpath != (unsigned long )((char const *)0)) { tmp___5 = strlen(rpath); *pathlen = (int )tmp___5; } else { *pathlen = 0; } descriptor___1.modname = "ceph"; descriptor___1.function = "set_request_path_attr"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : path %.*s\n"; descriptor___1.lineno = 1666U; descriptor___1.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : path %.*s\n", 3, (char *)" ", tmp___6, 1666, *pathlen, rpath); } else { } } else { } return (r); } } static struct ceph_msg *create_request_message(struct ceph_mds_client *mdsc , struct ceph_mds_request *req , int mds ) { struct ceph_msg *msg ; struct ceph_mds_request_head *head ; char const *path1 ; char const *path2 ; u64 ino1 ; u64 ino2 ; int pathlen1 ; int pathlen2 ; int freepath1 ; int freepath2 ; int len ; u16 releases ; void *p ; void *end ; int ret ; void *tmp ; void *tmp___0 ; void *tmp___1 ; int tmp___2 ; int tmp___3 ; int tmp___4 ; int tmp___5 ; long tmp___6 ; { path1 = 0; path2 = 0; ino1 = 0ULL; ino2 = 0ULL; pathlen1 = 0; pathlen2 = 0; freepath1 = 0; freepath2 = 0; ret = set_request_path_attr(req->r_inode, req->r_dentry, (char const *)req->r_path1, req->r_ino1.ino, & path1, & pathlen1, & ino1, & freepath1); if (ret < 0) { tmp = ERR_PTR((long )ret); msg = (struct ceph_msg *)tmp; goto out; } else { } ret = set_request_path_attr(0, req->r_old_dentry, (char const *)req->r_path2, req->r_ino2.ino, & path2, & pathlen2, & ino2, & freepath2); if (ret < 0) { tmp___0 = ERR_PTR((long )ret); msg = (struct ceph_msg *)tmp___0; goto out_free1; } else { } len = (int )(((unsigned int )pathlen1 + (unsigned int )pathlen2) + 114U); len = (int )((unsigned int )((unsigned long )((((req->r_inode_drop != 0) + (req->r_dentry_drop != 0)) + (req->r_old_inode_drop != 0)) + (req->r_old_dentry_drop != 0))) * 44U + (unsigned int )len); if (req->r_dentry_drop != 0) { len = (int )((req->r_dentry)->d_name.ldv_11489.ldv_11487.len + (u32 )len); } else { } if (req->r_old_dentry_drop != 0) { len = (int )((req->r_old_dentry)->d_name.ldv_11489.ldv_11487.len + (u32 )len); } else { } msg = ceph_msg_new(24, len, 80U, 0); if ((unsigned long )msg == (unsigned long )((struct ceph_msg *)0)) { tmp___1 = ERR_PTR(-12L); msg = (struct ceph_msg *)tmp___1; goto out_free2; } else { } msg->hdr.tid = req->r_tid; head = (struct ceph_mds_request_head *)msg->front.iov_base; p = msg->front.iov_base + 88UL; end = msg->front.iov_base + msg->front.iov_len; head->mdsmap_epoch = (mdsc->mdsmap)->m_epoch; head->op = (unsigned int )req->r_op; head->caller_uid = req->r_uid; head->caller_gid = req->r_gid; head->args = req->r_args; ceph_encode_filepath(& p, end, ino1, path1); ceph_encode_filepath(& p, end, ino2, path2); req->r_request_release_offset = (int )((unsigned int )((long )p) - (unsigned int )((long )msg->front.iov_base)); releases = 0U; if (req->r_inode_drop != 0) { tmp___2 = ceph_encode_inode_release(& p, (unsigned long )req->r_inode != (unsigned long )((struct inode *)0) ? req->r_inode : (req->r_dentry)->d_inode, mds, req->r_inode_drop, req->r_inode_unless, 0); releases = (int )((u16 )tmp___2) + (int )releases; } else { } if (req->r_dentry_drop != 0) { tmp___3 = ceph_encode_dentry_release(& p, req->r_dentry, mds, req->r_dentry_drop, req->r_dentry_unless); releases = (int )((u16 )tmp___3) + (int )releases; } else { } if (req->r_old_dentry_drop != 0) { tmp___4 = ceph_encode_dentry_release(& p, req->r_old_dentry, mds, req->r_old_dentry_drop, req->r_old_dentry_unless); releases = (int )((u16 )tmp___4) + (int )releases; } else { } if (req->r_old_inode_drop != 0) { tmp___5 = ceph_encode_inode_release(& p, (req->r_old_dentry)->d_inode, mds, req->r_old_inode_drop, req->r_old_inode_unless, 0); releases = (int )((u16 )tmp___5) + (int )releases; } else { } head->num_releases = releases; tmp___6 = ldv__builtin_expect((unsigned long )p > (unsigned long )end, 0L); if (tmp___6 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"), "i" (1761), "i" (12UL)); ldv_30100: ; goto ldv_30100; } else { } msg->front.iov_len = (size_t )((long )p - (long )msg->front.iov_base); msg->hdr.front_len = (unsigned int )msg->front.iov_len; msg->pages = req->r_pages; msg->nr_pages = (unsigned int )req->r_num_pages; msg->hdr.data_len = (unsigned int )req->r_data_len; msg->hdr.data_off = 0U; out_free2: ; if (freepath2 != 0) { kfree((void const *)path2); } else { } out_free1: ; if (freepath1 != 0) { kfree((void const *)path1); } else { } out: ; return (msg); } } static void complete_request(struct ceph_mds_client *mdsc , struct ceph_mds_request *req ) { { if ((unsigned long )req->r_callback != (unsigned long )((void (*)(struct ceph_mds_client * , struct ceph_mds_request * ))0)) { (*(req->r_callback))(mdsc, req); } else { complete_all(& req->r_completion); } return; } } static int __prepare_send_request(struct ceph_mds_client *mdsc , struct ceph_mds_request *req , int mds ) { struct ceph_mds_request_head *rhead ; struct ceph_msg *msg ; int flags ; struct ceph_cap *cap ; struct ceph_inode_info *tmp ; struct ceph_cap *tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; char const *tmp___2 ; long tmp___3 ; long tmp___4 ; long tmp___5 ; long tmp___6 ; struct _ddebug descriptor___0 ; char const *tmp___7 ; long tmp___8 ; { flags = 0; req->r_attempts = req->r_attempts + 1; if ((unsigned long )req->r_inode != (unsigned long )((struct inode *)0)) { tmp = ceph_inode(req->r_inode); tmp___0 = ceph_get_cap_for_mds(tmp, mds); cap = tmp___0; if ((unsigned long )cap != (unsigned long )((struct ceph_cap *)0)) { req->r_sent_on_mseq = cap->mseq; } else { req->r_sent_on_mseq = 4294967295U; } } else { } descriptor.modname = "ceph"; descriptor.function = "__prepare_send_request"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : prepare_send_request %p tid %lld %s (attempt %d)\n"; descriptor.lineno = 1815U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___1 = ceph_mds_op_name(req->r_op); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : prepare_send_request %p tid %lld %s (attempt %d)\n", 3, (char *)" ", tmp___2, 1815, req, req->r_tid, tmp___1, req->r_attempts); } else { } if ((int )req->r_got_unsafe) { msg = req->r_request; rhead = (struct ceph_mds_request_head *)msg->front.iov_base; flags = (int )rhead->flags; flags = flags | 1; rhead->flags = (unsigned int )flags; if ((unsigned long )req->r_target_inode != (unsigned long )((struct inode *)0)) { rhead->ino = ceph_ino(req->r_target_inode); } else { } rhead->num_retry = (unsigned int )((__u8 )req->r_attempts) + 255U; rhead->num_releases = 0U; msg->hdr.front_len = (unsigned int )req->r_request_release_offset; msg->front.iov_len = (size_t )req->r_request_release_offset; return (0); } else { } if ((unsigned long )req->r_request != (unsigned long )((struct ceph_msg *)0)) { ceph_msg_put(req->r_request); req->r_request = 0; } else { } msg = create_request_message(mdsc, req, mds); tmp___6 = IS_ERR((void const *)msg); if (tmp___6 != 0L) { tmp___4 = PTR_ERR((void const *)msg); req->r_err = (int )tmp___4; complete_request(mdsc, req); tmp___5 = PTR_ERR((void const *)msg); return ((int )tmp___5); } else { } req->r_request = msg; rhead = (struct ceph_mds_request_head *)msg->front.iov_base; rhead->oldest_client_tid = __get_oldest_tid(mdsc); if ((int )req->r_got_unsafe) { flags = flags | 1; } else { } if ((unsigned long )req->r_locked_dir != (unsigned long )((struct inode *)0)) { flags = flags | 2; } else { } rhead->flags = (unsigned int )flags; rhead->num_fwd = (__u8 )req->r_num_fwd; rhead->num_retry = (unsigned int )((__u8 )req->r_attempts) + 255U; rhead->ino = 0ULL; descriptor___0.modname = "ceph"; descriptor___0.function = "__prepare_send_request"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : r_locked_dir = %p\n"; descriptor___0.lineno = 1866U; descriptor___0.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : r_locked_dir = %p\n", 3, (char *)" ", tmp___7, 1866, req->r_locked_dir); } else { } return (0); } } static int __do_request(struct ceph_mds_client *mdsc , struct ceph_mds_request *req ) { struct ceph_mds_session *session ; int mds ; int err ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; long tmp___4 ; long tmp___5 ; struct _ddebug descriptor___1 ; char const *tmp___6 ; char const *tmp___7 ; long tmp___8 ; { session = 0; mds = -1; err = -11; if (req->r_err != 0 || (int )req->r_got_result) { goto out; } else { } if (req->r_timeout != 0UL && (long )jiffies - (long )(req->r_started + req->r_timeout) >= 0L) { descriptor.modname = "ceph"; descriptor.function = "__do_request"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : do_request timed out\n"; descriptor.lineno = 1885U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : do_request timed out\n", 3, (char *)" ", tmp, 1885); } else { } err = -5; goto finish; } else { } put_request_session(req); mds = __choose_mds(mdsc, req); if (mds < 0) { goto _L; } else { tmp___3 = ceph_mdsmap_get_state(mdsc->mdsmap, mds); if (tmp___3 <= 12) { _L: /* CIL Label */ descriptor___0.modname = "ceph"; descriptor___0.function = "__do_request"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : do_request no mds or not active, waiting for map\n"; descriptor___0.lineno = 1895U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : do_request no mds or not active, waiting for map\n", 3, (char *)" ", tmp___1, 1895); } else { } list_add(& req->r_wait, & mdsc->waiting_for_map); goto out; } else { } } session = __ceph_lookup_mds_session(mdsc, mds); if ((unsigned long )session == (unsigned long )((struct ceph_mds_session *)0)) { session = register_session(mdsc, mds); tmp___5 = IS_ERR((void const *)session); if (tmp___5 != 0L) { tmp___4 = PTR_ERR((void const *)session); err = (int )tmp___4; goto finish; } else { } } else { } req->r_session = get_session(session); descriptor___1.modname = "ceph"; descriptor___1.function = "__do_request"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : do_request mds%d session %p state %s\n"; descriptor___1.lineno = 1912U; descriptor___1.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___6 = session_state_name(session->s_state); tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : do_request mds%d session %p state %s\n", 3, (char *)" ", tmp___7, 1912, mds, session, tmp___6); } else { } if (session->s_state != 3 && session->s_state != 4) { if (session->s_state == 1 || session->s_state == 5) { __open_session(mdsc, session); } else { } list_add(& req->r_wait, & session->s_waiting); goto out_session; } else { } req->r_resend_mds = -1; if (req->r_request_started == 0UL) { req->r_request_started = jiffies; } else { } err = __prepare_send_request(mdsc, req, mds); if (err == 0) { ceph_msg_get(req->r_request); ceph_con_send(& session->s_con, req->r_request); } else { } out_session: ceph_put_mds_session(session); out: ; return (err); finish: req->r_err = err; complete_request(mdsc, req); goto out; } } static void __wake_requests(struct ceph_mds_client *mdsc , struct list_head *head ) { struct ceph_mds_request *req ; struct list_head tmp_list ; struct list_head const *__mptr ; int tmp ; { tmp_list.next = & tmp_list; tmp_list.prev = & tmp_list; list_splice_init(head, & tmp_list); goto ldv_30146; ldv_30145: __mptr = (struct list_head const *)tmp_list.next; req = (struct ceph_mds_request *)__mptr + 0xfffffffffffffd08UL; list_del_init(& req->r_wait); __do_request(mdsc, req); ldv_30146: tmp = list_empty((struct list_head const *)(& tmp_list)); if (tmp == 0) { goto ldv_30145; } else { } return; } } static void kick_requests(struct ceph_mds_client *mdsc , int mds ) { struct ceph_mds_request *req ; struct rb_node *p ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct rb_node const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; { descriptor.modname = "ceph"; descriptor.function = "kick_requests"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : kick_requests mds%d\n"; descriptor.lineno = 1973U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : kick_requests mds%d\n", 3, (char *)" ", tmp, 1973, mds); } else { } p = rb_first((struct rb_root const *)(& mdsc->request_tree)); goto ldv_30161; ldv_30160: __mptr = (struct rb_node const *)p; req = (struct ceph_mds_request *)__mptr + 0xfffffffffffffff8UL; if ((int )req->r_got_unsafe) { goto ldv_30158; } else { } if ((unsigned long )req->r_session != (unsigned long )((struct ceph_mds_session *)0) && (req->r_session)->s_mds == mds) { descriptor___0.modname = "ceph"; descriptor___0.function = "kick_requests"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : kicking tid %llu\n"; descriptor___0.lineno = 1980U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : kicking tid %llu\n", 3, (char *)" ", tmp___1, 1980, req->r_tid); } else { } __do_request(mdsc, req); } else { } ldv_30158: p = rb_next((struct rb_node const *)p); ldv_30161: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_30160; } else { } return; } } void ceph_mdsc_submit_request(struct ceph_mds_client *mdsc , struct ceph_mds_request *req ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_submit_request"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : submit_request on %p\n"; descriptor.lineno = 1989U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : submit_request on %p\n", 3, (char *)" ", tmp, 1989, req); } else { } ldv_mutex_lock_177(& mdsc->mutex); __register_request(mdsc, req, 0); __do_request(mdsc, req); ldv_mutex_unlock_178(& mdsc->mutex); return; } } int ceph_mdsc_do_request(struct ceph_mds_client *mdsc , struct inode *dir , struct ceph_mds_request *req ) { int err ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct ceph_inode_info *tmp___1 ; struct ceph_inode_info *tmp___2 ; struct ceph_inode_info *tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; struct _ddebug descriptor___1 ; char const *tmp___6 ; long tmp___7 ; long tmp___8 ; struct _ddebug descriptor___2 ; char const *tmp___9 ; long tmp___10 ; struct _ddebug descriptor___3 ; char const *tmp___11 ; long tmp___12 ; struct _ddebug descriptor___4 ; char const *tmp___13 ; long tmp___14 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_do_request"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : do_request on %p\n"; descriptor.lineno = 2006U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : do_request on %p\n", 3, (char *)" ", tmp, 2006, req); } else { } if ((unsigned long )req->r_inode != (unsigned long )((struct inode *)0)) { tmp___1 = ceph_inode(req->r_inode); ceph_get_cap_refs(tmp___1, 1); } else { } if ((unsigned long )req->r_locked_dir != (unsigned long )((struct inode *)0)) { tmp___2 = ceph_inode(req->r_locked_dir); ceph_get_cap_refs(tmp___2, 1); } else { } if ((unsigned long )req->r_old_dentry != (unsigned long )((struct dentry *)0)) { tmp___3 = ceph_inode(req->r_old_dentry_dir); ceph_get_cap_refs(tmp___3, 1); } else { } ldv_mutex_lock_179(& mdsc->mutex); __register_request(mdsc, req, dir); __do_request(mdsc, req); if (req->r_err != 0) { err = req->r_err; __unregister_request(mdsc, req); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_mdsc_do_request"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : do_request early error %d\n"; descriptor___0.lineno = 2025U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : do_request early error %d\n", 3, (char *)" ", tmp___4, 2025, err); } else { } goto out; } else { } ldv_mutex_unlock_180(& mdsc->mutex); descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_mdsc_do_request"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : do_request waiting\n"; descriptor___1.lineno = 2031U; descriptor___1.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : do_request waiting\n", 3, (char *)" ", tmp___6, 2031); } else { } if (req->r_timeout != 0UL) { tmp___8 = wait_for_completion_killable_timeout(& req->r_completion, req->r_timeout); err = (int )tmp___8; if (err == 0) { err = -5; } else { } } else { err = wait_for_completion_killable(& req->r_completion); } descriptor___2.modname = "ceph"; descriptor___2.function = "ceph_mdsc_do_request"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : do_request waited, got %d\n"; descriptor___2.lineno = 2040U; descriptor___2.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : do_request waited, got %d\n", 3, (char *)" ", tmp___9, 2040, err); } else { } ldv_mutex_lock_181(& mdsc->mutex); if ((int )req->r_got_result) { err = (int )(req->r_reply_info.head)->result; } else if (err < 0) { descriptor___3.modname = "ceph"; descriptor___3.function = "ceph_mdsc_do_request"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : aborted request %lld with %d\n"; descriptor___3.lineno = 2047U; descriptor___3.flags = 0U; tmp___12 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___12 != 0L) { tmp___11 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : aborted request %lld with %d\n", 3, (char *)" ", tmp___11, 2047, req->r_tid, err); } else { } ldv_mutex_lock_182(& req->r_fill_mutex); req->r_err = err; req->r_aborted = 1; ldv_mutex_unlock_183(& req->r_fill_mutex); if ((unsigned long )req->r_locked_dir != (unsigned long )((struct inode *)0) && (req->r_op & 4096) != 0) { ceph_invalidate_dir_request(req); } else { } } else { err = req->r_err; } out: ldv_mutex_unlock_184(& mdsc->mutex); descriptor___4.modname = "ceph"; descriptor___4.function = "ceph_mdsc_do_request"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : do_request %p done, result %d\n"; descriptor___4.lineno = 2068U; descriptor___4.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : do_request %p done, result %d\n", 3, (char *)" ", tmp___13, 2068, req, err); } else { } return (err); } } void ceph_invalidate_dir_request(struct ceph_mds_request *req ) { struct inode *inode ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp ; struct _ddebug descriptor ; char const *tmp___0 ; long tmp___1 ; { inode = req->r_locked_dir; tmp = ceph_inode(inode); ci = tmp; descriptor.modname = "ceph"; descriptor.function = "ceph_invalidate_dir_request"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : invalidate_dir_request %p (D_COMPLETE, lease(s))\n"; descriptor.lineno = 2081U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : invalidate_dir_request %p (D_COMPLETE, lease(s))\n", 3, (char *)" ", tmp___0, 2081, inode); } else { } spin_lock(& ci->i_ceph_lock); ceph_dir_clear_complete(inode); ci->i_release_count = ci->i_release_count + 1UL; spin_unlock(& ci->i_ceph_lock); if ((unsigned long )req->r_dentry != (unsigned long )((struct dentry *)0)) { ceph_invalidate_dentry_lease(req->r_dentry); } else { } if ((unsigned long )req->r_old_dentry != (unsigned long )((struct dentry *)0)) { ceph_invalidate_dentry_lease(req->r_old_dentry); } else { } return; } } static void handle_reply(struct ceph_mds_session *session , struct ceph_msg *msg ) { struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; struct ceph_mds_reply_head *head ; struct ceph_mds_reply_info_parsed *rinfo ; u64 tid ; int err ; int result ; int mds ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___1 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___2 ; char const *tmp___5 ; long tmp___6 ; struct ceph_inode_info *ci ; struct ceph_inode_info *tmp___7 ; struct ceph_cap *cap ; struct _ddebug descriptor___3 ; char const *tmp___8 ; long tmp___9 ; struct _ddebug descriptor___4 ; char const *tmp___10 ; long tmp___11 ; struct _ddebug descriptor___5 ; char const *tmp___12 ; long tmp___13 ; struct _ddebug descriptor___6 ; char const *tmp___14 ; long tmp___15 ; struct ceph_mds_request *tmp___16 ; struct _ddebug descriptor___7 ; char const *tmp___17 ; long tmp___18 ; struct _ddebug descriptor___8 ; char const *tmp___19 ; long tmp___20 ; { mdsc = session->s_mdsc; head = (struct ceph_mds_reply_head *)msg->front.iov_base; mds = session->s_mds; if (msg->front.iov_len <= 14UL) { printk("\vceph: mdsc_handle_reply got corrupt (short) reply\n"); ceph_msg_dump(msg); return; } else { } tid = msg->hdr.tid; ldv_mutex_lock_185(& mdsc->mutex); req = __lookup_request(mdsc, tid); if ((unsigned long )req == (unsigned long )((struct ceph_mds_request *)0)) { descriptor.modname = "ceph"; descriptor.function = "handle_reply"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_reply on unknown tid %llu\n"; descriptor.lineno = 2121U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_reply on unknown tid %llu\n", 3, (char *)" ", tmp, 2121, tid); } else { } ldv_mutex_unlock_186(& mdsc->mutex); return; } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "handle_reply"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : handle_reply %p\n"; descriptor___0.lineno = 2125U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : handle_reply %p\n", 3, (char *)" ", tmp___1, 2125, req); } else { } if ((unsigned long )req->r_session != (unsigned long )session) { printk("\vceph: mdsc_handle_reply got %llu on session mds%d not mds%d\n", tid, session->s_mds, (unsigned long )req->r_session != (unsigned long )((struct ceph_mds_session *)0) ? (req->r_session)->s_mds : -1); ldv_mutex_unlock_187(& mdsc->mutex); goto out; } else { } if (((int )req->r_got_unsafe && (unsigned int )head->safe == 0U) || ((int )req->r_got_safe && (unsigned int )head->safe != 0U)) { printk("\fceph: got a dup %s reply on %llu from mds%d\n", (unsigned int )head->safe != 0U ? (char *)"safe" : (char *)"unsafe", tid, mds); ldv_mutex_unlock_188(& mdsc->mutex); goto out; } else { } if ((int )req->r_got_safe && (unsigned int )head->safe == 0U) { printk("\fceph: got unsafe after safe on %llu from mds%d\n", tid, mds); ldv_mutex_unlock_189(& mdsc->mutex); goto out; } else { } result = (int )head->result; if (result == -116) { descriptor___1.modname = "ceph"; descriptor___1.function = "handle_reply"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : got ESTALE on request %llu"; descriptor___1.lineno = 2161U; descriptor___1.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : got ESTALE on request %llu", 3, (char *)" ", tmp___3, 2161, req->r_tid); } else { } if ((unsigned long )req->r_inode == (unsigned long )((struct inode *)0)) { } else if (req->r_direct_mode != 2) { descriptor___2.modname = "ceph"; descriptor___2.function = "handle_reply"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : not using auth, setting for that now"; descriptor___2.lineno = 2165U; descriptor___2.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : not using auth, setting for that now", 3, (char *)" ", tmp___5, 2165); } else { } req->r_direct_mode = 2; __do_request(mdsc, req); ldv_mutex_unlock_190(& mdsc->mutex); goto out; } else { tmp___7 = ceph_inode(req->r_inode); ci = tmp___7; cap = 0; if ((unsigned long )req->r_session != (unsigned long )((struct ceph_mds_session *)0)) { cap = ceph_get_cap_for_mds(ci, (req->r_session)->s_mds); } else { } descriptor___3.modname = "ceph"; descriptor___3.function = "handle_reply"; descriptor___3.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___3.format = "%.*s %12.12s:%-4d : already using auth"; descriptor___3.lineno = 2178U; descriptor___3.flags = 0U; tmp___9 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L); if (tmp___9 != 0L) { tmp___8 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___3, "ceph: %.*s %12.12s:%-4d : already using auth", 3, (char *)" ", tmp___8, 2178); } else { } if (((unsigned long )cap == (unsigned long )((struct ceph_cap *)0) || (unsigned long )ci->i_auth_cap != (unsigned long )cap) || cap->mseq != req->r_sent_on_mseq) { descriptor___4.modname = "ceph"; descriptor___4.function = "handle_reply"; descriptor___4.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___4.format = "%.*s %12.12s:%-4d : but cap changed, so resending"; descriptor___4.lineno = 2181U; descriptor___4.flags = 0U; tmp___11 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L); if (tmp___11 != 0L) { tmp___10 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___4, "ceph: %.*s %12.12s:%-4d : but cap changed, so resending", 3, (char *)" ", tmp___10, 2181); } else { } __do_request(mdsc, req); ldv_mutex_unlock_191(& mdsc->mutex); goto out; } else { } } descriptor___5.modname = "ceph"; descriptor___5.function = "handle_reply"; descriptor___5.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___5.format = "%.*s %12.12s:%-4d : have to return ESTALE on request %llu"; descriptor___5.lineno = 2187U; descriptor___5.flags = 0U; tmp___13 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L); if (tmp___13 != 0L) { tmp___12 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___5, "ceph: %.*s %12.12s:%-4d : have to return ESTALE on request %llu", 3, (char *)" ", tmp___12, 2187, req->r_tid); } else { } } else { } if ((unsigned int )head->safe != 0U) { req->r_got_safe = 1; __unregister_request(mdsc, req); complete_all(& req->r_safe_completion); if ((int )req->r_got_unsafe) { descriptor___6.modname = "ceph"; descriptor___6.function = "handle_reply"; descriptor___6.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___6.format = "%.*s %12.12s:%-4d : got safe reply %llu, mds%d\n"; descriptor___6.lineno = 2204U; descriptor___6.flags = 0U; tmp___15 = ldv__builtin_expect((long )descriptor___6.flags & 1L, 0L); if (tmp___15 != 0L) { tmp___14 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___6, "ceph: %.*s %12.12s:%-4d : got safe reply %llu, mds%d\n", 3, (char *)" ", tmp___14, 2204, tid, mds); } else { } list_del_init(& req->r_unsafe_item); if (mdsc->stopping != 0) { tmp___16 = __get_oldest_req(mdsc); if ((unsigned long )tmp___16 == (unsigned long )((struct ceph_mds_request *)0)) { complete_all(& mdsc->safe_umount_waiters); } else { } } else { } ldv_mutex_unlock_192(& mdsc->mutex); goto out; } else { } } else { req->r_got_unsafe = 1; list_add_tail(& req->r_unsafe_item, & (req->r_session)->s_unsafe); } descriptor___7.modname = "ceph"; descriptor___7.function = "handle_reply"; descriptor___7.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___7.format = "%.*s %12.12s:%-4d : handle_reply tid %lld result %d\n"; descriptor___7.lineno = 2218U; descriptor___7.flags = 0U; tmp___18 = ldv__builtin_expect((long )descriptor___7.flags & 1L, 0L); if (tmp___18 != 0L) { tmp___17 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___7, "ceph: %.*s %12.12s:%-4d : handle_reply tid %lld result %d\n", 3, (char *)" ", tmp___17, 2218, tid, result); } else { } rinfo = & req->r_reply_info; err = parse_reply_info(msg, rinfo, (int )session->s_con.peer_features); ldv_mutex_unlock_193(& mdsc->mutex); ldv_mutex_lock_194(& session->s_mutex); if (err < 0) { printk("\vceph: mdsc_handle_reply got corrupt reply mds%d(tid:%lld)\n", mds, tid); ceph_msg_dump(msg); goto out_err; } else { } if (rinfo->snapblob_len != 0) { down_write(& mdsc->snap_rwsem); ceph_update_snap_trace(mdsc, rinfo->snapblob, rinfo->snapblob + (unsigned long )rinfo->snapblob_len, head->op == 5121U); downgrade_write(& mdsc->snap_rwsem); } else { down_read(& mdsc->snap_rwsem); } ldv_mutex_lock_195(& req->r_fill_mutex); err = ceph_fill_trace((mdsc->fsc)->sb, req, req->r_session); if (err == 0) { if ((result == 0 && req->r_op != 272) && rinfo->ldv_29667.ldv_29666.dir_nr != 0) { ceph_readdir_prepopulate(req, req->r_session); } else { } ceph_unreserve_caps(mdsc, & req->r_caps_reservation); } else { } ldv_mutex_unlock_196(& req->r_fill_mutex); up_read(& mdsc->snap_rwsem); out_err: ldv_mutex_lock_197(& mdsc->mutex); if (! req->r_aborted) { if (err != 0) { req->r_err = err; } else { req->r_reply = msg; ceph_msg_get(msg); req->r_got_result = 1; } } else { descriptor___8.modname = "ceph"; descriptor___8.function = "handle_reply"; descriptor___8.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___8.format = "%.*s %12.12s:%-4d : reply arrived after request %lld was aborted\n"; descriptor___8.lineno = 2264U; descriptor___8.flags = 0U; tmp___20 = ldv__builtin_expect((long )descriptor___8.flags & 1L, 0L); if (tmp___20 != 0L) { tmp___19 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___8, "ceph: %.*s %12.12s:%-4d : reply arrived after request %lld was aborted\n", 3, (char *)" ", tmp___19, 2264, tid); } else { } } ldv_mutex_unlock_198(& mdsc->mutex); ceph_add_cap_releases(mdsc, req->r_session); ldv_mutex_unlock_199(& session->s_mutex); complete_request(mdsc, req); out: ceph_mdsc_put_request(req); return; } } static void handle_forward(struct ceph_mds_client *mdsc , struct ceph_mds_session *session , struct ceph_msg *msg ) { struct ceph_mds_request *req ; u64 tid ; u32 next_mds ; u32 fwd_seq ; int err ; void *p ; void *end ; int tmp ; long tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___2 ; char const *tmp___7 ; long tmp___8 ; long tmp___9 ; long tmp___10 ; { tid = msg->hdr.tid; err = -22; p = msg->front.iov_base; end = p + msg->front.iov_len; tmp = ceph_has_room(& p, end, 8UL); tmp___0 = ldv__builtin_expect(tmp != 0, 1L); if (tmp___0 == 0L) { goto bad; } else { } next_mds = ceph_decode_32(& p); fwd_seq = ceph_decode_32(& p); ldv_mutex_lock_200(& mdsc->mutex); req = __lookup_request(mdsc, tid); if ((unsigned long )req == (unsigned long )((struct ceph_mds_request *)0)) { descriptor.modname = "ceph"; descriptor.function = "handle_forward"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : forward tid %llu to mds%d - req dne\n"; descriptor.lineno = 2302U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : forward tid %llu to mds%d - req dne\n", 3, (char *)" ", tmp___1, 2302, tid, next_mds); } else { } goto out; } else { } if ((int )req->r_aborted) { descriptor___0.modname = "ceph"; descriptor___0.function = "handle_forward"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : forward tid %llu aborted, unregistering\n"; descriptor___0.lineno = 2307U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : forward tid %llu aborted, unregistering\n", 3, (char *)" ", tmp___3, 2307, tid); } else { } __unregister_request(mdsc, req); } else if ((u32 )req->r_num_fwd >= fwd_seq) { descriptor___1.modname = "ceph"; descriptor___1.function = "handle_forward"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : forward tid %llu to mds%d - old seq %d <= %d\n"; descriptor___1.lineno = 2311U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : forward tid %llu to mds%d - old seq %d <= %d\n", 3, (char *)" ", tmp___5, 2311, tid, next_mds, req->r_num_fwd, fwd_seq); } else { } } else { descriptor___2.modname = "ceph"; descriptor___2.function = "handle_forward"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : forward tid %llu to mds%d (we resend)\n"; descriptor___2.lineno = 2314U; descriptor___2.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : forward tid %llu to mds%d (we resend)\n", 3, (char *)" ", tmp___7, 2314, tid, next_mds); } else { } tmp___9 = ldv__builtin_expect(req->r_err != 0, 0L); if (tmp___9 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"), "i" (2315), "i" (12UL)); ldv_30236: ; goto ldv_30236; } else { } tmp___10 = ldv__builtin_expect((long )req->r_got_result, 0L); if (tmp___10 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"), "i" (2316), "i" (12UL)); ldv_30237: ; goto ldv_30237; } else { } req->r_num_fwd = (int )fwd_seq; req->r_resend_mds = (int )next_mds; put_request_session(req); __do_request(mdsc, req); } ceph_mdsc_put_request(req); out: ldv_mutex_unlock_201(& mdsc->mutex); return; bad: printk("\vceph: mdsc_handle_forward decode error err=%d\n", err); return; } } static void handle_session(struct ceph_mds_session *session , struct ceph_msg *msg ) { struct ceph_mds_client *mdsc ; u32 op ; u64 seq ; int mds ; struct ceph_mds_session_head *h ; int wake ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; char const *tmp___1 ; long tmp___2 ; int __ret_warn_on ; long tmp___3 ; { mdsc = session->s_mdsc; mds = session->s_mds; h = (struct ceph_mds_session_head *)msg->front.iov_base; wake = 0; if (msg->front.iov_len != 28UL) { goto bad; } else { } op = h->op; seq = h->seq; ldv_mutex_lock_202(& mdsc->mutex); if (op == 3U) { __unregister_session(mdsc, session); } else { } session->s_ttl = (unsigned long )((mdsc->mdsmap)->m_session_autoclose * 250U) + (unsigned long )jiffies; ldv_mutex_unlock_203(& mdsc->mutex); ldv_mutex_lock_204(& session->s_mutex); descriptor.modname = "ceph"; descriptor.function = "handle_session"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_session mds%d %s %p state %s seq %llu\n"; descriptor.lineno = 2361U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp = session_state_name(session->s_state); tmp___0 = ceph_session_op_name((int )op); tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_session mds%d %s %p state %s seq %llu\n", 3, (char *)" ", tmp___1, 2361, mds, tmp___0, session, tmp, seq); } else { } if (session->s_state == 4) { session->s_state = 3; printk("\016ceph: mds%d came back\n", session->s_mds); } else { } switch (op) { case 1U: ; if (session->s_state == 7) { printk("\016ceph: mds%d reconnect success\n", session->s_mds); } else { } session->s_state = 3; renewed_caps(mdsc, session, 0); wake = 1; if (mdsc->stopping != 0) { __close_session(mdsc, session); } else { } goto ldv_30252; case 5U: ; if (session->s_renew_seq == seq) { renewed_caps(mdsc, session, 1); } else { } goto ldv_30252; case 3U: ; if (session->s_state == 7) { printk("\016ceph: mds%d reconnect denied\n", session->s_mds); } else { } remove_session_caps(session); wake = 1; __wake_up(& mdsc->session_close_wq, 3U, 0, 0); kick_requests(mdsc, mds); goto ldv_30252; case 6U: printk("\016ceph: mds%d caps went stale, renewing\n", session->s_mds); spin_lock(& session->s_gen_ttl_lock); session->s_cap_gen = session->s_cap_gen + 1U; session->s_cap_ttl = (unsigned long )jiffies - 1UL; spin_unlock(& session->s_gen_ttl_lock); send_renew_caps(mdsc, session); goto ldv_30252; case 7U: trim_caps(mdsc, session, (int )h->max_caps); goto ldv_30252; default: printk("\vceph: mdsc_handle_session bad op %d mds%d\n", op, mds); __ret_warn_on = 1; tmp___3 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 2409); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } ldv_30252: ldv_mutex_unlock_205(& session->s_mutex); if (wake != 0) { ldv_mutex_lock_206(& mdsc->mutex); __wake_requests(mdsc, & session->s_waiting); ldv_mutex_unlock_207(& mdsc->mutex); } else { } return; bad: printk("\vceph: mdsc_handle_session corrupt message mds%d len %d\n", mds, (int )msg->front.iov_len); ceph_msg_dump(msg); return; } } static void replay_unsafe_requests(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_mds_request *req ; struct ceph_mds_request *nreq ; int err ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct list_head const *__mptr ; struct list_head const *__mptr___0 ; struct list_head const *__mptr___1 ; { descriptor.modname = "ceph"; descriptor.function = "replay_unsafe_requests"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : replay_unsafe_requests mds%d\n"; descriptor.lineno = 2437U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : replay_unsafe_requests mds%d\n", 3, (char *)" ", tmp, 2437, session->s_mds); } else { } ldv_mutex_lock_208(& mdsc->mutex); __mptr = (struct list_head const *)session->s_unsafe.next; req = (struct ceph_mds_request *)__mptr + 0xfffffffffffffc30UL; __mptr___0 = (struct list_head const *)req->r_unsafe_item.next; nreq = (struct ceph_mds_request *)__mptr___0 + 0xfffffffffffffc30UL; goto ldv_30276; ldv_30275: err = __prepare_send_request(mdsc, req, session->s_mds); if (err == 0) { ceph_msg_get(req->r_request); ceph_con_send(& session->s_con, req->r_request); } else { } req = nreq; __mptr___1 = (struct list_head const *)nreq->r_unsafe_item.next; nreq = (struct ceph_mds_request *)__mptr___1 + 0xfffffffffffffc30UL; ldv_30276: ; if ((unsigned long )(& req->r_unsafe_item) != (unsigned long )(& session->s_unsafe)) { goto ldv_30275; } else { } ldv_mutex_unlock_209(& mdsc->mutex); return; } } static int encode_caps_cb(struct inode *inode , struct ceph_cap *cap , void *arg ) { union __anonunion_rec_203 rec ; size_t reclen ; struct ceph_inode_info *ci ; struct ceph_reconnect_state *recon_state ; struct ceph_pagelist *pagelist ; char *path ; int pathlen ; int err ; u64 pathbase ; struct dentry *dentry ; struct _ddebug descriptor ; char const *tmp ; struct ceph_inode_info *tmp___0 ; struct ceph_inode_info *tmp___1 ; char const *tmp___2 ; long tmp___3 ; u64 tmp___4 ; long tmp___5 ; long tmp___6 ; int tmp___7 ; int tmp___8 ; int num_fcntl_locks ; int num_flock_locks ; struct ceph_pagelist_cursor trunc_point ; { recon_state = (struct ceph_reconnect_state *)arg; pagelist = recon_state->pagelist; ci = cap->ci; descriptor.modname = "ceph"; descriptor.function = "encode_caps_cb"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : adding %p ino %llx.%llx cap %p %lld %s\n"; descriptor.lineno = 2473U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp = ceph_cap_string(cap->issued); tmp___0 = ceph_inode(inode); tmp___1 = ceph_inode(inode); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : adding %p ino %llx.%llx cap %p %lld %s\n", 3, (char *)" ", tmp___2, 2473, inode, tmp___1->i_vino.ino, tmp___0->i_vino.snap, cap, cap->cap_id, tmp); } else { } tmp___4 = ceph_ino(inode); err = ceph_pagelist_encode_64(pagelist, tmp___4); if (err != 0) { return (err); } else { } dentry = d_find_alias(inode); if ((unsigned long )dentry != (unsigned long )((struct dentry *)0)) { path = ceph_mdsc_build_path(dentry, & pathlen, & pathbase, 0); tmp___6 = IS_ERR((void const *)path); if (tmp___6 != 0L) { tmp___5 = PTR_ERR((void const *)path); err = (int )tmp___5; goto out_dput; } else { } } else { path = 0; pathlen = 0; } err = ceph_pagelist_encode_string(pagelist, path, (size_t )pathlen); if (err != 0) { goto out_free; } else { } spin_lock(& ci->i_ceph_lock); cap->seq = 0U; cap->issue_seq = 0U; if ((int )recon_state->flock) { rec.v2.cap_id = cap->cap_id; tmp___7 = __ceph_caps_wanted(ci); rec.v2.wanted = (unsigned int )tmp___7; rec.v2.issued = (unsigned int )cap->issued; rec.v2.snaprealm = (ci->i_snap_realm)->ino; rec.v2.pathbase = pathbase; rec.v2.flock_len = 0U; reclen = 36UL; } else { rec.v1.cap_id = cap->cap_id; tmp___8 = __ceph_caps_wanted(ci); rec.v1.wanted = (unsigned int )tmp___8; rec.v1.issued = (unsigned int )cap->issued; rec.v1.size = (unsigned long long )inode->i_size; ceph_encode_timespec(& rec.v1.mtime, (struct timespec const *)(& inode->i_mtime)); ceph_encode_timespec(& rec.v1.atime, (struct timespec const *)(& inode->i_atime)); rec.v1.snaprealm = (ci->i_snap_realm)->ino; rec.v1.pathbase = pathbase; reclen = 56UL; } spin_unlock(& ci->i_ceph_lock); if ((int )recon_state->flock) { ceph_pagelist_set_cursor(pagelist, & trunc_point); ldv_30303: lock_flocks(); ceph_count_locks(inode, & num_fcntl_locks, & num_flock_locks); rec.v2.flock_len = (__le32 )((unsigned long )(num_fcntl_locks + num_flock_locks)) * 41U + 8U; unlock_flocks(); ceph_pagelist_truncate(pagelist, & trunc_point); err = ceph_pagelist_append(pagelist, (void const *)(& rec), reclen); if (err == 0) { err = ceph_pagelist_reserve(pagelist, (size_t )rec.v2.flock_len); } else { } if (err == 0) { lock_flocks(); err = ceph_encode_locks(inode, pagelist, num_fcntl_locks, num_flock_locks); unlock_flocks(); } else { } if (err == -28) { goto ldv_30303; } else { } } else { err = ceph_pagelist_append(pagelist, (void const *)(& rec), reclen); } out_free: kfree((void const *)path); out_dput: dput(dentry); return (err); } } static void send_mds_reconnect(struct ceph_mds_client *mdsc , struct ceph_mds_session *session ) { struct ceph_msg *reply ; struct rb_node *p ; int mds ; int err ; struct ceph_pagelist *pagelist ; struct ceph_reconnect_state recon_state ; void *tmp ; struct ceph_entity_addr *tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; char const *tmp___2 ; long tmp___3 ; struct ceph_snap_realm *realm ; struct rb_node const *__mptr ; struct ceph_mds_snaprealm_reconnect sr_rec ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; int tmp___6 ; { mds = session->s_mds; err = -12; printk("\016ceph: mds%d reconnect start\n", mds); tmp = kmalloc(64UL, 80U); pagelist = (struct ceph_pagelist *)tmp; if ((unsigned long )pagelist == (unsigned long )((struct ceph_pagelist *)0)) { goto fail_nopagelist; } else { } ceph_pagelist_init(pagelist); reply = ceph_msg_new(23, 0, 80U, 0); if ((unsigned long )reply == (unsigned long )((struct ceph_msg *)0)) { goto fail_nomsg; } else { } ldv_mutex_lock_210(& session->s_mutex); session->s_state = 7; session->s_seq = 0ULL; ceph_con_close(& session->s_con); tmp___0 = ceph_mdsmap_get_addr(mdsc->mdsmap, mds); ceph_con_open(& session->s_con, 2, (__u64 )mds, tmp___0); replay_unsafe_requests(mdsc, session); down_read(& mdsc->snap_rwsem); descriptor.modname = "ceph"; descriptor.function = "send_mds_reconnect"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : session %p state %s\n"; descriptor.lineno = 2609U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___1 = session_state_name(session->s_state); tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : session %p state %s\n", 3, (char *)" ", tmp___2, 2609, session, tmp___1); } else { } discard_cap_releases(mdsc, session); err = ceph_pagelist_encode_32(pagelist, (u32 )session->s_nr_caps); if (err != 0) { goto fail; } else { } recon_state.pagelist = pagelist; recon_state.flock = (session->s_con.peer_features & 8U) != 0U; err = iterate_session_caps(session, & encode_caps_cb, (void *)(& recon_state)); if (err < 0) { goto fail; } else { } p = rb_first((struct rb_root const *)(& mdsc->snap_realms)); goto ldv_30326; ldv_30325: __mptr = (struct rb_node const *)p; realm = (struct ceph_snap_realm *)__mptr + 0xfffffffffffffff0UL; descriptor___0.modname = "ceph"; descriptor___0.function = "send_mds_reconnect"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : adding snap realm %llx seq %lld parent %llx\n"; descriptor___0.lineno = 2636U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : adding snap realm %llx seq %lld parent %llx\n", 3, (char *)" ", tmp___4, 2636, realm->ino, realm->seq, realm->parent_ino); } else { } sr_rec.ino = realm->ino; sr_rec.seq = realm->seq; sr_rec.parent = realm->parent_ino; err = ceph_pagelist_append(pagelist, (void const *)(& sr_rec), 24UL); if (err != 0) { goto fail; } else { } p = rb_next((struct rb_node const *)p); ldv_30326: ; if ((unsigned long )p != (unsigned long )((struct rb_node *)0)) { goto ldv_30325; } else { } reply->pagelist = pagelist; if ((int )recon_state.flock) { reply->hdr.version = 2U; } else { } reply->hdr.data_len = (unsigned int )pagelist->length; tmp___6 = calc_pages_for(0ULL, (u64 )pagelist->length); reply->nr_pages = (unsigned int )tmp___6; ceph_con_send(& session->s_con, reply); ldv_mutex_unlock_211(& session->s_mutex); ldv_mutex_lock_212(& mdsc->mutex); __wake_requests(mdsc, & session->s_waiting); ldv_mutex_unlock_213(& mdsc->mutex); up_read(& mdsc->snap_rwsem); return; fail: ceph_msg_put(reply); up_read(& mdsc->snap_rwsem); ldv_mutex_unlock_214(& session->s_mutex); fail_nomsg: ceph_pagelist_release(pagelist); kfree((void const *)pagelist); fail_nopagelist: printk("\vceph: error %d preparing reconnect for mds%d\n", err, mds); return; } } static void check_new_map(struct ceph_mds_client *mdsc , struct ceph_mdsmap *newmap , struct ceph_mdsmap *oldmap ) { int i ; int oldstate ; int newstate ; struct ceph_mds_session *s ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; bool tmp___2 ; char const *tmp___3 ; bool tmp___4 ; char const *tmp___5 ; char const *tmp___6 ; long tmp___7 ; struct ceph_entity_addr *tmp___8 ; struct ceph_entity_addr *tmp___9 ; int tmp___10 ; bool tmp___11 ; int tmp___12 ; struct _ddebug descriptor___1 ; char const *tmp___13 ; long tmp___14 ; { descriptor.modname = "ceph"; descriptor.function = "check_new_map"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : check_new_map new %u old %u\n"; descriptor.lineno = 2689U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : check_new_map new %u old %u\n", 3, (char *)" ", tmp, 2689, newmap->m_epoch, oldmap->m_epoch); } else { } i = 0; goto ldv_30342; ldv_30341: ; if ((unsigned long )*(mdsc->sessions + (unsigned long )i) == (unsigned long )((struct ceph_mds_session *)0)) { goto ldv_30339; } else { } s = *(mdsc->sessions + (unsigned long )i); oldstate = ceph_mdsmap_get_state(oldmap, i); newstate = ceph_mdsmap_get_state(newmap, i); descriptor___0.modname = "ceph"; descriptor___0.function = "check_new_map"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : check_new_map mds%d state %s%s -> %s%s (session %s)\n"; descriptor___0.lineno = 2703U; descriptor___0.flags = 0U; tmp___7 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___7 != 0L) { tmp___1 = session_state_name(s->s_state); tmp___2 = ceph_mdsmap_is_laggy(newmap, i); tmp___3 = ceph_mds_state_name(newstate); tmp___4 = ceph_mdsmap_is_laggy(oldmap, i); tmp___5 = ceph_mds_state_name(oldstate); tmp___6 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : check_new_map mds%d state %s%s -> %s%s (session %s)\n", 3, (char *)" ", tmp___6, 2703, i, tmp___5, (int )tmp___4 ? (char *)" (laggy)" : (char *)"", tmp___3, (int )tmp___2 ? (char *)" (laggy)" : (char *)"", tmp___1); } else { } if ((u32 )i >= newmap->m_max_mds) { goto _L; } else { tmp___8 = ceph_mdsmap_get_addr(newmap, i); tmp___9 = ceph_mdsmap_get_addr(oldmap, i); tmp___10 = memcmp((void const *)tmp___9, (void const *)tmp___8, 136UL); if (tmp___10 != 0) { _L: /* CIL Label */ if (s->s_state == 2) { __wake_requests(mdsc, & s->s_waiting); __unregister_session(mdsc, s); } else { ldv_mutex_unlock_215(& mdsc->mutex); ldv_mutex_lock_216(& s->s_mutex); ldv_mutex_lock_217(& mdsc->mutex); ceph_con_close(& s->s_con); ldv_mutex_unlock_218(& s->s_mutex); s->s_state = 6; } kick_requests(mdsc, i); } else if (oldstate == newstate) { goto ldv_30339; } else { } } if (s->s_state == 6 && newstate > 9) { ldv_mutex_unlock_219(& mdsc->mutex); send_mds_reconnect(mdsc, s); ldv_mutex_lock_220(& mdsc->mutex); } else { } if (oldstate <= 12 && newstate > 12) { if (oldstate != -6 && oldstate != -7) { printk("\016ceph: mds%d recovery completed\n", s->s_mds); } else { } kick_requests(mdsc, i); ceph_kick_flushing_caps(mdsc, s); wake_up_session_caps(s, 1); } else { } ldv_30339: i = i + 1; ldv_30342: ; if ((u32 )i < oldmap->m_max_mds && mdsc->max_sessions > i) { goto ldv_30341; } else { } i = 0; goto ldv_30347; ldv_30346: s = *(mdsc->sessions + (unsigned long )i); if ((unsigned long )s == (unsigned long )((struct ceph_mds_session *)0)) { goto ldv_30344; } else { } tmp___11 = ceph_mdsmap_is_laggy(newmap, i); if (tmp___11) { tmp___12 = 0; } else { tmp___12 = 1; } if (tmp___12) { goto ldv_30344; } else { } if ((s->s_state == 3 || s->s_state == 4) || s->s_state == 5) { descriptor___1.modname = "ceph"; descriptor___1.function = "check_new_map"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : connecting to export targets of laggy mds%d\n"; descriptor___1.lineno = 2764U; descriptor___1.flags = 0U; tmp___14 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___14 != 0L) { tmp___13 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : connecting to export targets of laggy mds%d\n", 3, (char *)" ", tmp___13, 2764, i); } else { } __open_export_target_sessions(mdsc, s); } else { } ldv_30344: i = i + 1; ldv_30347: ; if ((u32 )i < newmap->m_max_mds && mdsc->max_sessions > i) { goto ldv_30346; } else { } return; } } void __ceph_mdsc_drop_dentry_lease(struct dentry *dentry ) { struct ceph_dentry_info *di ; struct ceph_dentry_info *tmp ; { tmp = ceph_dentry(dentry); di = tmp; ceph_put_mds_session(di->lease_session); di->lease_session = 0; return; } } static void handle_lease(struct ceph_mds_client *mdsc , struct ceph_mds_session *session , struct ceph_msg *msg ) { struct super_block *sb ; struct inode *inode ; struct dentry *parent ; struct dentry *dentry ; struct ceph_dentry_info *di ; int mds ; struct ceph_mds_lease *h ; u32 seq ; struct ceph_vino vino ; struct qstr dname ; int release ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; u32 tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; char const *tmp___3 ; long tmp___4 ; struct _ddebug descriptor___1 ; char const *tmp___5 ; long tmp___6 ; struct _ddebug descriptor___2 ; char const *tmp___7 ; long tmp___8 ; int __ret_warn_on ; long tmp___9 ; __s32 tmp___10 ; unsigned long duration ; { sb = (mdsc->fsc)->sb; mds = session->s_mds; h = (struct ceph_mds_lease *)msg->front.iov_base; release = 0; descriptor.modname = "ceph"; descriptor.function = "handle_lease"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_lease from mds%d\n"; descriptor.lineno = 2802U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_lease from mds%d\n", 3, (char *)" ", tmp, 2802, mds); } else { } if (msg->front.iov_len <= 38UL) { goto bad; } else { } vino.ino = h->ino; vino.snap = 0xfffffffffffffffeULL; seq = h->seq; dname.name = (unsigned char const *)h + 39U; dname.ldv_11489.ldv_11487.len = (u32 )msg->front.iov_len - 39U; tmp___1 = get_unaligned_le32((void const *)h + 1U); if (dname.ldv_11489.ldv_11487.len != tmp___1) { goto bad; } else { } ldv_mutex_lock_221(& session->s_mutex); session->s_seq = session->s_seq + 1ULL; inode = ceph_find_inode(sb, vino); descriptor___0.modname = "ceph"; descriptor___0.function = "handle_lease"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : handle_lease %s, ino %llx %p %.*s\n"; descriptor___0.lineno = 2822U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___2 = ceph_lease_op_name((int )h->action); tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : handle_lease %s, ino %llx %p %.*s\n", 3, (char *)" ", tmp___3, 2822, tmp___2, vino.ino, inode, dname.ldv_11489.ldv_11487.len, dname.name); } else { } if ((unsigned long )inode == (unsigned long )((struct inode *)0)) { descriptor___1.modname = "ceph"; descriptor___1.function = "handle_lease"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : handle_lease no inode %llx\n"; descriptor___1.lineno = 2824U; descriptor___1.flags = 0U; tmp___6 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___6 != 0L) { tmp___5 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : handle_lease no inode %llx\n", 3, (char *)" ", tmp___5, 2824, vino.ino); } else { } goto release; } else { } parent = d_find_alias(inode); if ((unsigned long )parent == (unsigned long )((struct dentry *)0)) { descriptor___2.modname = "ceph"; descriptor___2.function = "handle_lease"; descriptor___2.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___2.format = "%.*s %12.12s:%-4d : no parent dentry on inode %p\n"; descriptor___2.lineno = 2831U; descriptor___2.flags = 0U; tmp___8 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L); if (tmp___8 != 0L) { tmp___7 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___2, "ceph: %.*s %12.12s:%-4d : no parent dentry on inode %p\n", 3, (char *)" ", tmp___7, 2831, inode); } else { } __ret_warn_on = 1; tmp___9 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___9 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 2832); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); goto release; } else { } dname.ldv_11489.ldv_11487.hash = full_name_hash(dname.name, dname.ldv_11489.ldv_11487.len); dentry = d_lookup(parent, & dname); dput(parent); if ((unsigned long )dentry == (unsigned long )((struct dentry *)0)) { goto release; } else { } spin_lock(& dentry->d_lock); di = ceph_dentry(dentry); switch ((int )h->action) { case 1: ; if ((unsigned long )di->lease_session == (unsigned long )session) { tmp___10 = ceph_seq_cmp(di->lease_seq, seq); if (tmp___10 > 0) { h->seq = di->lease_seq; } else { } __ceph_mdsc_drop_dentry_lease(dentry); } else { } release = 1; goto ldv_30379; case 3: ; if ((((unsigned long )di->lease_session == (unsigned long )session && di->lease_gen == session->s_cap_gen) && di->lease_renew_from != 0UL) && di->lease_renew_after == 0UL) { duration = (unsigned long )((h->duration_ms * 250U) / 1000U); di->lease_seq = seq; dentry->d_time = di->lease_renew_from + duration; di->lease_renew_after = di->lease_renew_from + (duration >> 1); di->lease_renew_from = 0UL; } else { } goto ldv_30379; } ldv_30379: spin_unlock(& dentry->d_lock); dput(dentry); if (release == 0) { goto out; } else { } release: h->action = 4U; ceph_msg_get(msg); ceph_con_send(& session->s_con, msg); out: iput(inode); ldv_mutex_unlock_222(& session->s_mutex); return; bad: printk("\vceph: corrupt lease message\n"); ceph_msg_dump(msg); return; } } void ceph_mdsc_lease_send_msg(struct ceph_mds_session *session , struct inode *inode , struct dentry *dentry , char action , u32 seq ) { struct ceph_msg *msg ; struct ceph_mds_lease *lease ; int len ; int dnamelen ; struct _ddebug descriptor ; char const *tmp ; char const *tmp___0 ; long tmp___1 ; struct ceph_vino tmp___2 ; __le64 tmp___3 ; struct ceph_vino tmp___4 ; size_t __len ; void *__ret ; { len = 39; dnamelen = 0; descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_lease_send_msg"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : lease_send_msg inode %p dentry %p %s to mds%d\n"; descriptor.lineno = 2902U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp = ceph_lease_op_name((int )action); tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : lease_send_msg inode %p dentry %p %s to mds%d\n", 3, (char *)" ", tmp___0, 2902, inode, dentry, tmp, session->s_mds); } else { } dnamelen = (int )dentry->d_name.ldv_11489.ldv_11487.len; len = len + dnamelen; msg = ceph_msg_new(785, len, 80U, 0); if ((unsigned long )msg == (unsigned long )((struct ceph_msg *)0)) { return; } else { } lease = (struct ceph_mds_lease *)msg->front.iov_base; lease->action = (__u8 )action; tmp___2 = ceph_vino(inode); lease->ino = tmp___2.ino; tmp___4 = ceph_vino(inode); tmp___3 = tmp___4.snap; lease->last = tmp___3; lease->first = tmp___3; lease->seq = seq; put_unaligned_le32((u32 )dnamelen, (void *)lease + 1U); __len = (size_t )dnamelen; __ret = memcpy((void *)lease + 5U, (void const *)dentry->d_name.name, __len); msg->more_to_follow = (int )((signed char )action) == 2; ceph_con_send(& session->s_con, msg); return; } } void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc , struct inode *inode , struct dentry *dentry ) { struct ceph_dentry_info *di ; struct ceph_mds_session *session ; u32 seq ; long tmp ; long tmp___0 ; struct _ddebug descriptor ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; { tmp = ldv__builtin_expect((unsigned long )inode == (unsigned long )((struct inode *)0), 0L); if (tmp != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"), "i" (2938), "i" (12UL)); ldv_30407: ; goto ldv_30407; } else { } tmp___0 = ldv__builtin_expect((unsigned long )dentry == (unsigned long )((struct dentry *)0), 0L); if (tmp___0 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"), "i" (2939), "i" (12UL)); ldv_30408: ; goto ldv_30408; } else { } spin_lock(& dentry->d_lock); di = ceph_dentry(dentry); if (((((unsigned long )di == (unsigned long )((struct ceph_dentry_info *)0) || (unsigned long )di->lease_session == (unsigned long )((struct ceph_mds_session *)0)) || (di->lease_session)->s_mds < 0) || di->lease_gen != (di->lease_session)->s_cap_gen) || (long )jiffies - (long )dentry->d_time >= 0L) { descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_lease_release"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : lease_release inode %p dentry %p -- no lease\n"; descriptor.lineno = 2950U; descriptor.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : lease_release inode %p dentry %p -- no lease\n", 3, (char *)" ", tmp___1, 2950, inode, dentry); } else { } spin_unlock(& dentry->d_lock); return; } else { } session = ceph_get_mds_session(di->lease_session); seq = di->lease_seq; __ceph_mdsc_drop_dentry_lease(dentry); spin_unlock(& dentry->d_lock); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_mdsc_lease_release"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : lease_release inode %p dentry %p to mds%d\n"; descriptor___0.lineno = 2962U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : lease_release inode %p dentry %p to mds%d\n", 3, (char *)" ", tmp___3, 2962, inode, dentry, session->s_mds); } else { } ceph_mdsc_lease_send_msg(session, inode, dentry, 2, seq); ceph_put_mds_session(session); return; } } static void drop_leases(struct ceph_mds_client *mdsc ) { int i ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct ceph_mds_session *s ; struct ceph_mds_session *tmp___1 ; { descriptor.modname = "ceph"; descriptor.function = "drop_leases"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : drop_leases\n"; descriptor.lineno = 2975U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : drop_leases\n", 3, (char *)" ", tmp, 2975); } else { } ldv_mutex_lock_223(& mdsc->mutex); i = 0; goto ldv_30427; ldv_30426: tmp___1 = __ceph_lookup_mds_session(mdsc, i); s = tmp___1; if ((unsigned long )s == (unsigned long )((struct ceph_mds_session *)0)) { goto ldv_30425; } else { } ldv_mutex_unlock_224(& mdsc->mutex); ldv_mutex_lock_225(& s->s_mutex); ldv_mutex_unlock_226(& s->s_mutex); ceph_put_mds_session(s); ldv_mutex_lock_227(& mdsc->mutex); ldv_30425: i = i + 1; ldv_30427: ; if (mdsc->max_sessions > i) { goto ldv_30426; } else { } ldv_mutex_unlock_228(& mdsc->mutex); return; } } static void schedule_delayed(struct ceph_mds_client *mdsc ) { int delay ; unsigned int hz ; unsigned long tmp ; { delay = 5; tmp = round_jiffies_relative((unsigned long )(delay * 250)); hz = (unsigned int )tmp; schedule_delayed_work(& mdsc->delayed_work, (unsigned long )hz); return; } } static void delayed_work(struct work_struct *work ) { int i ; struct ceph_mds_client *mdsc ; struct work_struct const *__mptr ; int renew_interval ; int renew_caps ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct ceph_mds_session *s ; struct ceph_mds_session *tmp___1 ; struct _ddebug descriptor___0 ; char const *tmp___2 ; long tmp___3 ; { __mptr = (struct work_struct const *)work; mdsc = (struct ceph_mds_client *)__mptr + 0xfffffffffffffd70UL; descriptor.modname = "ceph"; descriptor.function = "delayed_work"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : mdsc delayed_work\n"; descriptor.lineno = 3010U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : mdsc delayed_work\n", 3, (char *)" ", tmp, 3010); } else { } ceph_check_delayed_caps(mdsc); ldv_mutex_lock_229(& mdsc->mutex); renew_interval = (int )((mdsc->mdsmap)->m_session_timeout >> 2); renew_caps = (long )jiffies - (long )((unsigned long )(renew_interval * 250) + mdsc->last_renew_caps) >= 0L; if (renew_caps != 0) { mdsc->last_renew_caps = jiffies; } else { } i = 0; goto ldv_30461; ldv_30460: tmp___1 = __ceph_lookup_mds_session(mdsc, i); s = tmp___1; if ((unsigned long )s == (unsigned long )((struct ceph_mds_session *)0)) { goto ldv_30452; } else { } if (s->s_state == 5) { descriptor___0.modname = "ceph"; descriptor___0.function = "delayed_work"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : resending session close request for mds%d\n"; descriptor___0.lineno = 3026U; descriptor___0.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : resending session close request for mds%d\n", 3, (char *)" ", tmp___2, 3026, s->s_mds); } else { } request_close_session(mdsc, s); ceph_put_mds_session(s); goto ldv_30452; } else { } if (s->s_ttl != 0UL && (long )s->s_ttl - (long )jiffies < 0L) { if (s->s_state == 3) { s->s_state = 4; printk("\016ceph: mds%d hung\n", s->s_mds); } else { } } else { } if (s->s_state <= 2) { ceph_put_mds_session(s); goto ldv_30452; } else { } ldv_mutex_unlock_230(& mdsc->mutex); ldv_mutex_lock_231(& s->s_mutex); if (renew_caps != 0) { send_renew_caps(mdsc, s); } else { ceph_con_keepalive(& s->s_con); } ceph_add_cap_releases(mdsc, s); if (s->s_state == 3 || s->s_state == 4) { ceph_send_cap_releases(mdsc, s); } else { } ldv_mutex_unlock_232(& s->s_mutex); ceph_put_mds_session(s); ldv_mutex_lock_233(& mdsc->mutex); ldv_30452: i = i + 1; ldv_30461: ; if (mdsc->max_sessions > i) { goto ldv_30460; } else { } ldv_mutex_unlock_234(& mdsc->mutex); schedule_delayed(mdsc); return; } } int ceph_mdsc_init(struct ceph_fs_client *fsc ) { struct ceph_mds_client *mdsc ; void *tmp ; struct lock_class_key __key ; void *tmp___0 ; struct lock_class_key __key___0 ; struct lock_class_key __key___1 ; struct rb_root __constr_expr_0 ; struct lock_class_key __key___2 ; struct rb_root __constr_expr_1 ; struct lock_class_key __key___3 ; atomic_long_t __constr_expr_2 ; struct lock_class_key __key___4 ; struct lock_class_key __key___5 ; struct lock_class_key __key___6 ; struct lock_class_key __key___7 ; struct lock_class_key __key___8 ; struct lock_class_key __key___9 ; { tmp = kzalloc(1472UL, 80U); mdsc = (struct ceph_mds_client *)tmp; if ((unsigned long )mdsc == (unsigned long )((struct ceph_mds_client *)0)) { return (-12); } else { } mdsc->fsc = fsc; fsc->mdsc = mdsc; __mutex_init(& mdsc->mutex, "&mdsc->mutex", & __key); tmp___0 = kzalloc(72UL, 80U); mdsc->mdsmap = (struct ceph_mdsmap *)tmp___0; if ((unsigned long )mdsc->mdsmap == (unsigned long )((struct ceph_mdsmap *)0)) { return (-12); } else { } init_completion(& mdsc->safe_umount_waiters); __init_waitqueue_head(& mdsc->session_close_wq, "&mdsc->session_close_wq", & __key___0); INIT_LIST_HEAD(& mdsc->waiting_for_map); mdsc->sessions = 0; mdsc->max_sessions = 0; mdsc->stopping = 0; __init_rwsem(& mdsc->snap_rwsem, "&mdsc->snap_rwsem", & __key___1); __constr_expr_0.rb_node = 0; mdsc->snap_realms = __constr_expr_0; INIT_LIST_HEAD(& mdsc->snap_empty); spinlock_check(& mdsc->snap_empty_lock); __raw_spin_lock_init(& mdsc->snap_empty_lock.ldv_5961.rlock, "&(&mdsc->snap_empty_lock)->rlock", & __key___2); mdsc->last_tid = 0ULL; __constr_expr_1.rb_node = 0; mdsc->request_tree = __constr_expr_1; __init_work(& mdsc->delayed_work.work, 0); __constr_expr_2.counter = 4195328L; mdsc->delayed_work.work.data = __constr_expr_2; lockdep_init_map(& mdsc->delayed_work.work.lockdep_map, "(&(&mdsc->delayed_work)->work)", & __key___3, 0); INIT_LIST_HEAD(& mdsc->delayed_work.work.entry); mdsc->delayed_work.work.func = & delayed_work; init_timer_key(& mdsc->delayed_work.timer, 2U, "(&(&mdsc->delayed_work)->timer)", & __key___4); mdsc->delayed_work.timer.function = & delayed_work_timer_fn; mdsc->delayed_work.timer.data = (unsigned long )(& mdsc->delayed_work); mdsc->last_renew_caps = jiffies; INIT_LIST_HEAD(& mdsc->cap_delay_list); spinlock_check(& mdsc->cap_delay_lock); __raw_spin_lock_init(& mdsc->cap_delay_lock.ldv_5961.rlock, "&(&mdsc->cap_delay_lock)->rlock", & __key___5); INIT_LIST_HEAD(& mdsc->snap_flush_list); spinlock_check(& mdsc->snap_flush_lock); __raw_spin_lock_init(& mdsc->snap_flush_lock.ldv_5961.rlock, "&(&mdsc->snap_flush_lock)->rlock", & __key___6); mdsc->cap_flush_seq = 0ULL; INIT_LIST_HEAD(& mdsc->cap_dirty); INIT_LIST_HEAD(& mdsc->cap_dirty_migrating); mdsc->num_cap_flushing = 0; spinlock_check(& mdsc->cap_dirty_lock); __raw_spin_lock_init(& mdsc->cap_dirty_lock.ldv_5961.rlock, "&(&mdsc->cap_dirty_lock)->rlock", & __key___7); __init_waitqueue_head(& mdsc->cap_flushing_wq, "&mdsc->cap_flushing_wq", & __key___8); spinlock_check(& mdsc->dentry_lru_lock); __raw_spin_lock_init(& mdsc->dentry_lru_lock.ldv_5961.rlock, "&(&mdsc->dentry_lru_lock)->rlock", & __key___9); INIT_LIST_HEAD(& mdsc->dentry_lru); ceph_caps_init(mdsc); ceph_adjust_min_caps(mdsc, fsc->min_caps); return (0); } } static void wait_requests(struct ceph_mds_client *mdsc ) { struct ceph_mds_request *req ; struct ceph_fs_client *fsc ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct ceph_mds_request *tmp___3 ; struct _ddebug descriptor___1 ; char const *tmp___4 ; long tmp___5 ; { fsc = mdsc->fsc; ldv_mutex_lock_235(& mdsc->mutex); tmp___3 = __get_oldest_req(mdsc); if ((unsigned long )tmp___3 != (unsigned long )((struct ceph_mds_request *)0)) { ldv_mutex_unlock_236(& mdsc->mutex); descriptor.modname = "ceph"; descriptor.function = "wait_requests"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : wait_requests waiting for requests\n"; descriptor.lineno = 3124U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : wait_requests waiting for requests\n", 3, (char *)" ", tmp, 3124); } else { } wait_for_completion_timeout(& mdsc->safe_umount_waiters, (unsigned long )(((fsc->client)->options)->mount_timeout * 250)); ldv_mutex_lock_237(& mdsc->mutex); goto ldv_30490; ldv_30489: descriptor___0.modname = "ceph"; descriptor___0.function = "wait_requests"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : wait_requests timed out on tid %llu\n"; descriptor___0.lineno = 3132U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : wait_requests timed out on tid %llu\n", 3, (char *)" ", tmp___1, 3132, req->r_tid); } else { } __unregister_request(mdsc, req); ldv_30490: req = __get_oldest_req(mdsc); if ((unsigned long )req != (unsigned long )((struct ceph_mds_request *)0)) { goto ldv_30489; } else { } } else { } ldv_mutex_unlock_238(& mdsc->mutex); descriptor___1.modname = "ceph"; descriptor___1.function = "wait_requests"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : wait_requests done\n"; descriptor___1.lineno = 3137U; descriptor___1.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : wait_requests done\n", 3, (char *)" ", tmp___4, 3137); } else { } return; } } void ceph_mdsc_pre_umount(struct ceph_mds_client *mdsc ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_pre_umount"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : pre_umount\n"; descriptor.lineno = 3146U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : pre_umount\n", 3, (char *)" ", tmp, 3146); } else { } mdsc->stopping = 1; drop_leases(mdsc); ceph_flush_dirty_caps(mdsc); wait_requests(mdsc); ceph_msgr_flush(); return; } } static void wait_unsafe_requests(struct ceph_mds_client *mdsc , u64 want_tid ) { struct ceph_mds_request *req ; struct ceph_mds_request *nextreq ; struct rb_node *n ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct rb_node const *__mptr ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; struct _ddebug descriptor___1 ; char const *tmp___3 ; long tmp___4 ; { req = 0; ldv_mutex_lock_239(& mdsc->mutex); descriptor.modname = "ceph"; descriptor.function = "wait_unsafe_requests"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : wait_unsafe_requests want %lld\n"; descriptor.lineno = 3169U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : wait_unsafe_requests want %lld\n", 3, (char *)" ", tmp, 3169, want_tid); } else { } restart: req = __get_oldest_req(mdsc); goto ldv_30513; ldv_30512: n = rb_next((struct rb_node const *)(& req->r_node)); if ((unsigned long )n != (unsigned long )((struct rb_node *)0)) { __mptr = (struct rb_node const *)n; nextreq = (struct ceph_mds_request *)__mptr + 0xfffffffffffffff8UL; } else { nextreq = 0; } if ((req->r_op & 4096) != 0) { ceph_mdsc_get_request(req); if ((unsigned long )nextreq != (unsigned long )((struct ceph_mds_request *)0)) { ceph_mdsc_get_request(nextreq); } else { } ldv_mutex_unlock_240(& mdsc->mutex); descriptor___0.modname = "ceph"; descriptor___0.function = "wait_unsafe_requests"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : wait_unsafe_requests wait on %llu (want %llu)\n"; descriptor___0.lineno = 3186U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : wait_unsafe_requests wait on %llu (want %llu)\n", 3, (char *)" ", tmp___1, 3186, req->r_tid, want_tid); } else { } wait_for_completion(& req->r_safe_completion); ldv_mutex_lock_241(& mdsc->mutex); ceph_mdsc_put_request(req); if ((unsigned long )nextreq == (unsigned long )((struct ceph_mds_request *)0)) { goto ldv_30511; } else { } if (nextreq->r_node.__rb_parent_color == (unsigned long )(& nextreq->r_node)) { ceph_mdsc_put_request(nextreq); goto restart; } else { } ceph_mdsc_put_request(nextreq); } else { } req = nextreq; ldv_30513: ; if ((unsigned long )req != (unsigned long )((struct ceph_mds_request *)0) && req->r_tid <= want_tid) { goto ldv_30512; } else { } ldv_30511: ldv_mutex_unlock_242(& mdsc->mutex); descriptor___1.modname = "ceph"; descriptor___1.function = "wait_unsafe_requests"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : wait_unsafe_requests done\n"; descriptor___1.lineno = 3202U; descriptor___1.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : wait_unsafe_requests done\n", 3, (char *)" ", tmp___3, 3202); } else { } return; } } void ceph_mdsc_sync(struct ceph_mds_client *mdsc ) { u64 want_tid ; u64 want_flush ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; int tmp___3 ; wait_queue_t __wait ; struct task_struct *tmp___4 ; int tmp___5 ; { if ((mdsc->fsc)->mount_state == 4UL) { return; } else { } descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_sync"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : sync\n"; descriptor.lineno = 3212U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : sync\n", 3, (char *)" ", tmp, 3212); } else { } ldv_mutex_lock_243(& mdsc->mutex); want_tid = mdsc->last_tid; want_flush = mdsc->cap_flush_seq; ldv_mutex_unlock_244(& mdsc->mutex); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_mdsc_sync"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : sync want tid %lld flush_seq %lld\n"; descriptor___0.lineno = 3217U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : sync want tid %lld flush_seq %lld\n", 3, (char *)" ", tmp___1, 3217, want_tid, want_flush); } else { } ceph_flush_dirty_caps(mdsc); wait_unsafe_requests(mdsc, want_tid); tmp___3 = check_cap_flush(mdsc, want_flush); if (tmp___3 != 0) { goto ldv_30523; } else { } tmp___4 = get_current(); __wait.flags = 0U; __wait.private = (void *)tmp___4; __wait.func = & autoremove_wake_function; __wait.task_list.next = & __wait.task_list; __wait.task_list.prev = & __wait.task_list; ldv_30526: prepare_to_wait(& mdsc->cap_flushing_wq, & __wait, 2); tmp___5 = check_cap_flush(mdsc, want_flush); if (tmp___5 != 0) { goto ldv_30525; } else { } schedule(); goto ldv_30526; ldv_30525: finish_wait(& mdsc->cap_flushing_wq, & __wait); ldv_30523: ; return; } } static bool done_closing_sessions(struct ceph_mds_client *mdsc ) { int i ; int n ; { n = 0; if ((mdsc->fsc)->mount_state == 4UL) { return (1); } else { } ldv_mutex_lock_245(& mdsc->mutex); i = 0; goto ldv_30533; ldv_30532: ; if ((unsigned long )*(mdsc->sessions + (unsigned long )i) != (unsigned long )((struct ceph_mds_session *)0)) { n = n + 1; } else { } i = i + 1; ldv_30533: ; if (mdsc->max_sessions > i) { goto ldv_30532; } else { } ldv_mutex_unlock_246(& mdsc->mutex); return (n == 0); } } void ceph_mdsc_close_sessions(struct ceph_mds_client *mdsc ) { struct ceph_mds_session *session ; int i ; struct ceph_fs_client *fsc ; unsigned long timeout ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; long __ret ; wait_queue_t __wait ; struct task_struct *tmp___3 ; bool tmp___4 ; bool tmp___5 ; int tmp___6 ; int __ret_warn_on ; int tmp___7 ; long tmp___8 ; struct _ddebug descriptor___1 ; char const *tmp___9 ; long tmp___10 ; { fsc = mdsc->fsc; timeout = (unsigned long )(((fsc->client)->options)->mount_timeout * 250); descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_close_sessions"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : close_sessions\n"; descriptor.lineno = 3253U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : close_sessions\n", 3, (char *)" ", tmp, 3253); } else { } ldv_mutex_lock_247(& mdsc->mutex); i = 0; goto ldv_30546; ldv_30545: session = __ceph_lookup_mds_session(mdsc, i); if ((unsigned long )session == (unsigned long )((struct ceph_mds_session *)0)) { goto ldv_30544; } else { } ldv_mutex_unlock_248(& mdsc->mutex); ldv_mutex_lock_249(& session->s_mutex); __close_session(mdsc, session); ldv_mutex_unlock_250(& session->s_mutex); ceph_put_mds_session(session); ldv_mutex_lock_251(& mdsc->mutex); ldv_30544: i = i + 1; ldv_30546: ; if (mdsc->max_sessions > i) { goto ldv_30545; } else { } ldv_mutex_unlock_252(& mdsc->mutex); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_mdsc_close_sessions"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : waiting for sessions to close\n"; descriptor___0.lineno = 3270U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : waiting for sessions to close\n", 3, (char *)" ", tmp___1, 3270); } else { } __ret = (long )timeout; tmp___5 = done_closing_sessions(mdsc); if (tmp___5) { tmp___6 = 0; } else { tmp___6 = 1; } if (tmp___6) { tmp___3 = get_current(); __wait.flags = 0U; __wait.private = (void *)tmp___3; __wait.func = & autoremove_wake_function; __wait.task_list.next = & __wait.task_list; __wait.task_list.prev = & __wait.task_list; ldv_30552: prepare_to_wait(& mdsc->session_close_wq, & __wait, 2); tmp___4 = done_closing_sessions(mdsc); if ((int )tmp___4) { goto ldv_30551; } else { } __ret = schedule_timeout(__ret); if (__ret == 0L) { goto ldv_30551; } else { } goto ldv_30552; ldv_30551: finish_wait(& mdsc->session_close_wq, & __wait); } else { } ldv_mutex_lock_253(& mdsc->mutex); i = 0; goto ldv_30555; ldv_30554: ; if ((unsigned long )*(mdsc->sessions + (unsigned long )i) != (unsigned long )((struct ceph_mds_session *)0)) { session = get_session(*(mdsc->sessions + (unsigned long )i)); __unregister_session(mdsc, session); ldv_mutex_unlock_254(& mdsc->mutex); ldv_mutex_lock_255(& session->s_mutex); remove_session_caps(session); ldv_mutex_unlock_256(& session->s_mutex); ceph_put_mds_session(session); ldv_mutex_lock_257(& mdsc->mutex); } else { } i = i + 1; ldv_30555: ; if (mdsc->max_sessions > i) { goto ldv_30554; } else { } tmp___7 = list_empty((struct list_head const *)(& mdsc->cap_delay_list)); __ret_warn_on = tmp___7 == 0; tmp___8 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___8 != 0L) { warn_slowpath_null("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 3288); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); ldv_mutex_unlock_258(& mdsc->mutex); ceph_cleanup_empty_realms(mdsc); cancel_delayed_work_sync(& mdsc->delayed_work); descriptor___1.modname = "ceph"; descriptor___1.function = "ceph_mdsc_close_sessions"; descriptor___1.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___1.format = "%.*s %12.12s:%-4d : stopped\n"; descriptor___1.lineno = 3295U; descriptor___1.flags = 0U; tmp___10 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L); if (tmp___10 != 0L) { tmp___9 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___1, "ceph: %.*s %12.12s:%-4d : stopped\n", 3, (char *)" ", tmp___9, 3295); } else { } return; } } static void ceph_mdsc_stop(struct ceph_mds_client *mdsc ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_stop"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : stop\n"; descriptor.lineno = 3300U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : stop\n", 3, (char *)" ", tmp, 3300); } else { } cancel_delayed_work_sync(& mdsc->delayed_work); if ((unsigned long )mdsc->mdsmap != (unsigned long )((struct ceph_mdsmap *)0)) { ceph_mdsmap_destroy(mdsc->mdsmap); } else { } kfree((void const *)mdsc->sessions); ceph_caps_finalize(mdsc); return; } } void ceph_mdsc_destroy(struct ceph_fs_client *fsc ) { struct ceph_mds_client *mdsc ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; struct _ddebug descriptor___0 ; char const *tmp___1 ; long tmp___2 ; { mdsc = fsc->mdsc; descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_destroy"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : mdsc_destroy %p\n"; descriptor.lineno = 3312U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : mdsc_destroy %p\n", 3, (char *)" ", tmp, 3312, mdsc); } else { } ceph_mdsc_stop(mdsc); ceph_msgr_flush(); fsc->mdsc = 0; kfree((void const *)mdsc); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_mdsc_destroy"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mdsc_destroy %p done\n"; descriptor___0.lineno = 3320U; descriptor___0.flags = 0U; tmp___2 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___2 != 0L) { tmp___1 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mdsc_destroy %p done\n", 3, (char *)" ", tmp___1, 3320, mdsc); } else { } return; } } void ceph_mdsc_handle_map(struct ceph_mds_client *mdsc , struct ceph_msg *msg ) { u32 epoch ; u32 maplen ; void *p ; void *end ; struct ceph_mdsmap *newmap ; struct ceph_mdsmap *oldmap ; struct ceph_fsid fsid ; int err ; int tmp ; long tmp___0 ; int tmp___1 ; struct _ddebug descriptor ; char const *tmp___2 ; long tmp___3 ; struct _ddebug descriptor___0 ; char const *tmp___4 ; long tmp___5 ; long tmp___6 ; long tmp___7 ; { p = msg->front.iov_base; end = p + msg->front.iov_len; err = -22; tmp = ceph_has_room(& p, end, 24UL); tmp___0 = ldv__builtin_expect(tmp != 0, 1L); if (tmp___0 == 0L) { goto bad; } else { } ceph_decode_copy(& p, (void *)(& fsid), 16UL); tmp___1 = ceph_check_fsid((mdsc->fsc)->client, & fsid); if (tmp___1 < 0) { return; } else { } epoch = ceph_decode_32(& p); maplen = ceph_decode_32(& p); descriptor.modname = "ceph"; descriptor.function = "ceph_mdsc_handle_map"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : handle_map epoch %u len %d\n"; descriptor.lineno = 3343U; descriptor.flags = 0U; tmp___3 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___3 != 0L) { tmp___2 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : handle_map epoch %u len %d\n", 3, (char *)" ", tmp___2, 3343, epoch, (int )maplen); } else { } ceph_monc_got_mdsmap(& ((mdsc->fsc)->client)->monc, epoch); ldv_mutex_lock_259(& mdsc->mutex); if ((unsigned long )mdsc->mdsmap != (unsigned long )((struct ceph_mdsmap *)0) && (mdsc->mdsmap)->m_epoch >= epoch) { descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_mdsc_handle_map"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : handle_map epoch %u <= our %u\n"; descriptor___0.lineno = 3350U; descriptor___0.flags = 0U; tmp___5 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___5 != 0L) { tmp___4 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : handle_map epoch %u <= our %u\n", 3, (char *)" ", tmp___4, 3350, epoch, (mdsc->mdsmap)->m_epoch); } else { } ldv_mutex_unlock_260(& mdsc->mutex); return; } else { } newmap = ceph_mdsmap_decode(& p, end); tmp___7 = IS_ERR((void const *)newmap); if (tmp___7 != 0L) { tmp___6 = PTR_ERR((void const *)newmap); err = (int )tmp___6; goto bad_unlock; } else { } if ((unsigned long )mdsc->mdsmap != (unsigned long )((struct ceph_mdsmap *)0)) { oldmap = mdsc->mdsmap; mdsc->mdsmap = newmap; check_new_map(mdsc, newmap, oldmap); ceph_mdsmap_destroy(oldmap); } else { mdsc->mdsmap = newmap; } ((mdsc->fsc)->sb)->s_maxbytes = (loff_t )(mdsc->mdsmap)->m_max_file_size; __wake_requests(mdsc, & mdsc->waiting_for_map); ldv_mutex_unlock_261(& mdsc->mutex); schedule_delayed(mdsc); return; bad_unlock: ldv_mutex_unlock_262(& mdsc->mutex); bad: printk("\vceph: error decoding mdsmap %d\n", err); return; } } static struct ceph_connection *con_get(struct ceph_connection *con ) { struct ceph_mds_session *s ; struct _ddebug descriptor ; int tmp ; char const *tmp___0 ; long tmp___1 ; struct ceph_mds_session *tmp___2 ; struct _ddebug descriptor___0 ; char const *tmp___3 ; long tmp___4 ; { s = (struct ceph_mds_session *)con->private; tmp___2 = get_session(s); if ((unsigned long )tmp___2 != (unsigned long )((struct ceph_mds_session *)0)) { descriptor.modname = "ceph"; descriptor.function = "con_get"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : mdsc con_get %p ok (%d)\n"; descriptor.lineno = 3390U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp = atomic_read((atomic_t const *)(& s->s_ref)); tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : mdsc con_get %p ok (%d)\n", 3, (char *)" ", tmp___0, 3390, s, tmp); } else { } return (con); } else { } descriptor___0.modname = "ceph"; descriptor___0.function = "con_get"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mdsc con_get %p FAIL\n"; descriptor___0.lineno = 3393U; descriptor___0.flags = 0U; tmp___4 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___4 != 0L) { tmp___3 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mdsc con_get %p FAIL\n", 3, (char *)" ", tmp___3, 3393, s); } else { } return (0); } } static void con_put(struct ceph_connection *con ) { struct ceph_mds_session *s ; struct _ddebug descriptor ; int tmp ; char const *tmp___0 ; long tmp___1 ; { s = (struct ceph_mds_session *)con->private; descriptor.modname = "ceph"; descriptor.function = "con_put"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : mdsc con_put %p (%d)\n"; descriptor.lineno = 3401U; descriptor.flags = 0U; tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___1 != 0L) { tmp = atomic_read((atomic_t const *)(& s->s_ref)); tmp___0 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mds_client.c.prepared", 266); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : mdsc con_put %p (%d)\n", 3, (char *)" ", tmp___0, 3401, s, tmp + -1); } else { } ceph_put_mds_session(s); return; } } static void peer_reset(struct ceph_connection *con ) { struct ceph_mds_session *s ; struct ceph_mds_client *mdsc ; { s = (struct ceph_mds_session *)con->private; mdsc = s->s_mdsc; printk("\fceph: mds%d closed our session\n", s->s_mds); send_mds_reconnect(mdsc, s); return; } } static void dispatch(struct ceph_connection *con , struct ceph_msg *msg ) { struct ceph_mds_session *s ; struct ceph_mds_client *mdsc ; int type ; int tmp ; char const *tmp___0 ; { s = (struct ceph_mds_session *)con->private; mdsc = s->s_mdsc; type = (int )msg->hdr.type; ldv_mutex_lock_263(& mdsc->mutex); tmp = __verify_registered_session(mdsc, s); if (tmp < 0) { ldv_mutex_unlock_264(& mdsc->mutex); goto out; } else { } ldv_mutex_unlock_265(& mdsc->mutex); switch (type) { case 21: ceph_mdsc_handle_map(mdsc, msg); goto ldv_30616; case 22: handle_session(s, msg); goto ldv_30616; case 26: handle_reply(s, msg); goto ldv_30616; case 25: handle_forward(mdsc, s, msg); goto ldv_30616; case 784: ceph_handle_caps(s, msg); goto ldv_30616; case 786: ceph_handle_snap(mdsc, s, msg); goto ldv_30616; case 785: handle_lease(mdsc, s, msg); goto ldv_30616; default: tmp___0 = ceph_msg_type_name(type); printk("\vceph: received unknown message type %d %s\n", type, tmp___0); } ldv_30616: ; out: ceph_msg_put(msg); return; } } static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con , int *proto , int force_new ) { struct ceph_mds_session *s ; struct ceph_mds_client *mdsc ; struct ceph_auth_client *ac ; struct ceph_auth_handshake *auth ; int ret ; int tmp ; void *tmp___0 ; { s = (struct ceph_mds_session *)con->private; mdsc = s->s_mdsc; ac = ((mdsc->fsc)->client)->monc.auth; auth = & s->s_auth; if (force_new != 0 && (unsigned long )auth->authorizer != (unsigned long )((struct ceph_authorizer *)0)) { if ((unsigned long )ac->ops != (unsigned long )((struct ceph_auth_client_ops const *)0) && (unsigned long )(ac->ops)->destroy_authorizer != (unsigned long )((void (*/* const */)(struct ceph_auth_client * , struct ceph_authorizer * ))0)) { (*((ac->ops)->destroy_authorizer))(ac, auth->authorizer); } else { } auth->authorizer = 0; } else { } if (((unsigned long )auth->authorizer == (unsigned long )((struct ceph_authorizer *)0) && (unsigned long )ac->ops != (unsigned long )((struct ceph_auth_client_ops const *)0)) && (unsigned long )(ac->ops)->create_authorizer != (unsigned long )((int (*/* const */)(struct ceph_auth_client * , int , struct ceph_auth_handshake * ))0)) { tmp = (*((ac->ops)->create_authorizer))(ac, 2, auth); ret = tmp; if (ret != 0) { tmp___0 = ERR_PTR((long )ret); return ((struct ceph_auth_handshake *)tmp___0); } else { } } else { } *proto = (int )ac->protocol; return (auth); } } static int verify_authorizer_reply(struct ceph_connection *con , int len ) { struct ceph_mds_session *s ; struct ceph_mds_client *mdsc ; struct ceph_auth_client *ac ; int tmp ; { s = (struct ceph_mds_session *)con->private; mdsc = s->s_mdsc; ac = ((mdsc->fsc)->client)->monc.auth; tmp = (*((ac->ops)->verify_authorizer_reply))(ac, s->s_auth.authorizer, (size_t )len); return (tmp); } } static int invalidate_authorizer(struct ceph_connection *con ) { struct ceph_mds_session *s ; struct ceph_mds_client *mdsc ; struct ceph_auth_client *ac ; int tmp ; { s = (struct ceph_mds_session *)con->private; mdsc = s->s_mdsc; ac = ((mdsc->fsc)->client)->monc.auth; if ((unsigned long )(ac->ops)->invalidate_authorizer != (unsigned long )((void (*/* const */)(struct ceph_auth_client * , int ))0)) { (*((ac->ops)->invalidate_authorizer))(ac, 2); } else { } tmp = ceph_monc_validate_auth(& ((mdsc->fsc)->client)->monc); return (tmp); } } static struct ceph_connection_operations const mds_con_ops = {& con_get, & con_put, & dispatch, & get_authorizer, & verify_authorizer_reply, & invalidate_authorizer, 0, & peer_reset, 0}; void ldv_main11_sequence_infinite_withcheck_stateful(void) { struct ceph_connection *var_group1 ; struct ceph_msg *var_group2 ; int *var_get_authorizer_86_p1 ; int var_get_authorizer_86_p2 ; int var_verify_authorizer_reply_87_p1 ; int tmp ; int tmp___0 ; { LDV_IN_INTERRUPT = 1; ldv_initialize(); goto ldv_30679; ldv_30678: tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ldv_handler_precall(); con_get(var_group1); goto ldv_30670; case 1: ldv_handler_precall(); con_put(var_group1); goto ldv_30670; case 2: ldv_handler_precall(); dispatch(var_group1, var_group2); goto ldv_30670; case 3: ldv_handler_precall(); get_authorizer(var_group1, var_get_authorizer_86_p1, var_get_authorizer_86_p2); goto ldv_30670; case 4: ldv_handler_precall(); verify_authorizer_reply(var_group1, var_verify_authorizer_reply_87_p1); goto ldv_30670; case 5: ldv_handler_precall(); invalidate_authorizer(var_group1); goto ldv_30670; case 6: ldv_handler_precall(); peer_reset(var_group1); goto ldv_30670; default: ; goto ldv_30670; } ldv_30670: ; ldv_30679: tmp___0 = __VERIFIER_nondet_int(); if (tmp___0 != 0) { goto ldv_30678; } else { } ldv_check_final_state(); return; } } void ldv_mutex_lock_165(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_166(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_167(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_168(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_169(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_170(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_171(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_172(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_173(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_174(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_175(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_176(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_177(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_178(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_179(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_180(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_181(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_lock_182(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_r_fill_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_183(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_r_fill_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_184(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_185(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_186(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_187(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_188(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_189(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_190(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_191(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_192(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_193(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_194(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_lock_195(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_r_fill_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_196(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_r_fill_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_197(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_198(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_199(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_200(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_201(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_202(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_203(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_204(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_205(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_206(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_207(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_208(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_209(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_210(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_211(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_212(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_213(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_214(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_215(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_216(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_lock_217(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_218(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_219(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_220(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_lock_221(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_222(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_223(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_224(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_225(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_226(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_227(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_228(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_229(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_230(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_231(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_232(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_233(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_234(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_235(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_236(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_237(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_238(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_239(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_240(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_241(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_242(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_243(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_244(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_245(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_246(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_247(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_248(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_249(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_250(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_251(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_252(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_253(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_254(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_255(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_s_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_256(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_s_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_257(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_258(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_259(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_260(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_261(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_262(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_263(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_264(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_265(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } __inline static __u16 __fswab16(__u16 val ) { { return ((__u16 )((int )((short )((int )val << 8)) | (int )((short )((int )val >> 8)))); } } __inline static __u16 __le16_to_cpup(__le16 const *p ) { { return ((__u16 )*p); } } extern void print_hex_dump(char const * , char const * , int , int , int , void const * , size_t , bool ) ; void ldv_mutex_unlock_368(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_370(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_367(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_369(struct mutex *ldv_func_arg1 ) ; extern char const *ceph_pr_addr(struct __kernel_sockaddr_storage const * ) ; __inline static u16 get_unaligned_le16(void const *p ) { __u16 tmp ; { tmp = __le16_to_cpup((__le16 const *)p); return (tmp); } } __inline static u64 ceph_decode_64(void **p ) { u64 v ; u64 tmp ; { tmp = get_unaligned_le64((void const *)*p); v = tmp; *p = *p + 8UL; return (v); } } __inline static u16 ceph_decode_16(void **p ) { u16 v ; u16 tmp ; { tmp = get_unaligned_le16((void const *)*p); v = tmp; *p = *p + 2UL; return (v); } } __inline static void ceph_decode_addr(struct ceph_entity_addr *a ) { __be16 ss_family ; __u16 tmp ; int __ret_warn_on ; long tmp___0 ; { ss_family = a->in_addr.ss_family; tmp = __fswab16((int )ss_family); a->in_addr.ss_family = tmp; __ret_warn_on = (unsigned int )a->in_addr.ss_family == 512U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("include/linux/ceph/decode.h", 162); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return; } } int ceph_mdsmap_get_random_mds(struct ceph_mdsmap *m ) { int n ; int i ; char r ; { n = 0; i = 0; goto ldv_28562; ldv_28561: ; if ((m->m_info + (unsigned long )i)->state > 0) { n = n + 1; } else { } i = i + 1; ldv_28562: ; if ((u32 )i < m->m_max_mds) { goto ldv_28561; } else { } if (n == 0) { return (-1); } else { } get_random_bytes((void *)(& r), 1); n = (int )r % n; i = 0; i = 0; goto ldv_28568; ldv_28567: ; goto ldv_28565; ldv_28564: i = i + 1; ldv_28565: ; if ((m->m_info + (unsigned long )i)->state <= 0) { goto ldv_28564; } else { } i = i + 1; n = n - 1; ldv_28568: ; if (n > 0) { goto ldv_28567; } else { } return (i); } } struct ceph_mdsmap *ceph_mdsmap_decode(void **p , void *end ) { struct ceph_mdsmap *m ; void const *start ; int i ; int j ; int n ; int err ; u16 version ; void *tmp ; void *tmp___0 ; int tmp___1 ; long tmp___2 ; int tmp___3 ; long tmp___4 ; void *tmp___5 ; u32 tmp___6 ; u64 global_id ; u32 namelen ; s32 mds ; s32 inc ; s32 state ; u64 state_seq ; u8 infoversion ; struct ceph_entity_addr addr ; u32 num_export_targets ; void *pexport_targets ; struct ceph_timespec laggy_since ; int tmp___7 ; long tmp___8 ; int tmp___9 ; long tmp___10 ; u32 tmp___11 ; u32 tmp___12 ; u32 tmp___13 ; int tmp___14 ; long tmp___15 ; int tmp___16 ; long tmp___17 ; struct _ddebug descriptor ; char const *tmp___18 ; char const *tmp___19 ; char const *tmp___20 ; long tmp___21 ; void *tmp___22 ; int tmp___23 ; long tmp___24 ; u32 tmp___25 ; void *tmp___26 ; int tmp___27 ; long tmp___28 ; struct _ddebug descriptor___0 ; char const *tmp___29 ; long tmp___30 ; void *tmp___31 ; { start = (void const *)*p; err = -22; tmp = kzalloc(72UL, 80U); m = (struct ceph_mdsmap *)tmp; if ((unsigned long )m == (unsigned long )((struct ceph_mdsmap *)0)) { tmp___0 = ERR_PTR(-12L); return ((struct ceph_mdsmap *)tmp___0); } else { } tmp___1 = ceph_has_room(p, end, 2UL); tmp___2 = ldv__builtin_expect(tmp___1 != 0, 1L); if (tmp___2 == 0L) { goto bad; } else { } version = ceph_decode_16(p); tmp___3 = ceph_has_room(p, end, 40UL); tmp___4 = ldv__builtin_expect(tmp___3 != 0, 1L); if (tmp___4 == 0L) { goto bad; } else { } m->m_epoch = ceph_decode_32(p); m->m_client_epoch = ceph_decode_32(p); m->m_last_failure = ceph_decode_32(p); m->m_root = ceph_decode_32(p); m->m_session_timeout = ceph_decode_32(p); m->m_session_autoclose = ceph_decode_32(p); m->m_max_file_size = ceph_decode_64(p); m->m_max_mds = ceph_decode_32(p); tmp___5 = kcalloc((size_t )m->m_max_mds, 168UL, 80U); m->m_info = (struct ceph_mds_info *)tmp___5; if ((unsigned long )m->m_info == (unsigned long )((struct ceph_mds_info *)0)) { goto badmem; } else { } tmp___6 = ceph_decode_32(p); n = (int )tmp___6; i = 0; goto ldv_28600; ldv_28599: pexport_targets = 0; tmp___7 = ceph_has_room(p, end, 21UL); tmp___8 = ldv__builtin_expect(tmp___7 != 0, 1L); if (tmp___8 == 0L) { goto bad; } else { } global_id = ceph_decode_64(p); infoversion = ceph_decode_8(p); *p = *p + 8UL; namelen = ceph_decode_32(p); *p = *p + (unsigned long )namelen; tmp___9 = ceph_has_room(p, end, 168UL); tmp___10 = ldv__builtin_expect(tmp___9 != 0, 1L); if (tmp___10 == 0L) { goto bad; } else { } tmp___11 = ceph_decode_32(p); mds = (s32 )tmp___11; tmp___12 = ceph_decode_32(p); inc = (s32 )tmp___12; tmp___13 = ceph_decode_32(p); state = (s32 )tmp___13; state_seq = ceph_decode_64(p); ceph_decode_copy(p, (void *)(& addr), 136UL); ceph_decode_addr(& addr); ceph_decode_copy(p, (void *)(& laggy_since), 8UL); *p = *p + 4UL; tmp___14 = ceph_has_room(p, end, 4UL); tmp___15 = ldv__builtin_expect(tmp___14 != 0, 1L); if (tmp___15 == 0L) { goto bad; } else { } namelen = ceph_decode_32(p); *p = *p + (unsigned long )namelen; if ((unsigned int )infoversion > 1U) { tmp___16 = ceph_has_room(p, end, 4UL); tmp___17 = ldv__builtin_expect(tmp___16 != 0, 1L); if (tmp___17 == 0L) { goto bad; } else { } num_export_targets = ceph_decode_32(p); pexport_targets = *p; *p = *p + (unsigned long )num_export_targets * 4UL; } else { num_export_targets = 0U; } descriptor.modname = "ceph"; descriptor.function = "ceph_mdsmap_decode"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mdsmap.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : mdsmap_decode %d/%d %lld mds%d.%d %s %s\n"; descriptor.lineno = 193U; descriptor.flags = 0U; tmp___21 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___21 != 0L) { tmp___18 = ceph_mds_state_name(state); tmp___19 = ceph_pr_addr((struct __kernel_sockaddr_storage const *)(& addr.in_addr)); tmp___20 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mdsmap.c.prepared", 262); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : mdsmap_decode %d/%d %lld mds%d.%d %s %s\n", 3, (char *)" ", tmp___20, 193, i + 1, n, global_id, mds, inc, tmp___19, tmp___18); } else { } if ((mds >= 0 && (u32 )mds < m->m_max_mds) && state > 0) { (m->m_info + (unsigned long )mds)->global_id = global_id; (m->m_info + (unsigned long )mds)->state = state; (m->m_info + (unsigned long )mds)->addr = addr; (m->m_info + (unsigned long )mds)->laggy = (bool )(laggy_since.tv_sec != 0U || laggy_since.tv_nsec != 0U); (m->m_info + (unsigned long )mds)->num_export_targets = (int )num_export_targets; if (num_export_targets != 0U) { tmp___22 = kcalloc((size_t )num_export_targets, 4UL, 80U); (m->m_info + (unsigned long )mds)->export_targets = (u32 *)tmp___22; j = 0; goto ldv_28597; ldv_28596: *((m->m_info + (unsigned long )mds)->export_targets + (unsigned long )j) = ceph_decode_32(& pexport_targets); j = j + 1; ldv_28597: ; if ((u32 )j < num_export_targets) { goto ldv_28596; } else { } } else { (m->m_info + (unsigned long )mds)->export_targets = 0; } } else { } i = i + 1; ldv_28600: ; if (i < n) { goto ldv_28599; } else { } tmp___23 = ceph_has_room(p, end, 4UL); tmp___24 = ldv__builtin_expect(tmp___23 != 0, 1L); if (tmp___24 == 0L) { goto bad; } else { } tmp___25 = ceph_decode_32(p); n = (int )tmp___25; m->m_num_data_pg_pools = n; tmp___26 = kcalloc((size_t )n, 4UL, 80U); m->m_data_pg_pools = (u32 *)tmp___26; if ((unsigned long )m->m_data_pg_pools == (unsigned long )((u32 *)0)) { goto badmem; } else { } tmp___27 = ceph_has_room(p, end, (unsigned long )(n + 1) * 4UL); tmp___28 = ldv__builtin_expect(tmp___27 != 0, 1L); if (tmp___28 == 0L) { goto bad; } else { } i = 0; goto ldv_28603; ldv_28602: *(m->m_data_pg_pools + (unsigned long )i) = ceph_decode_32(p); i = i + 1; ldv_28603: ; if (i < n) { goto ldv_28602; } else { } m->m_cas_pg_pool = ceph_decode_32(p); descriptor___0.modname = "ceph"; descriptor___0.function = "ceph_mdsmap_decode"; descriptor___0.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mdsmap.c.prepared"; descriptor___0.format = "%.*s %12.12s:%-4d : mdsmap_decode success epoch %u\n"; descriptor___0.lineno = 227U; descriptor___0.flags = 0U; tmp___30 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L); if (tmp___30 != 0L) { tmp___29 = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/mdsmap.c.prepared", 262); __dynamic_pr_debug(& descriptor___0, "ceph: %.*s %12.12s:%-4d : mdsmap_decode success epoch %u\n", 3, (char *)" ", tmp___29, 227, m->m_epoch); } else { } return (m); badmem: err = -12; bad: printk("\vceph: corrupt mdsmap\n"); print_hex_dump("\017", "mdsmap: ", 2, 16, 1, start, (size_t )((long )end - (long )start), 1); ceph_mdsmap_destroy(m); tmp___31 = ERR_PTR(-22L); return ((struct ceph_mdsmap *)tmp___31); } } void ceph_mdsmap_destroy(struct ceph_mdsmap *m ) { int i ; { i = 0; goto ldv_28611; ldv_28610: kfree((void const *)(m->m_info + (unsigned long )i)->export_targets); i = i + 1; ldv_28611: ; if ((u32 )i < m->m_max_mds) { goto ldv_28610; } else { } kfree((void const *)m->m_info); kfree((void const *)m->m_data_pg_pools); kfree((void const *)m); return; } } void ldv_mutex_lock_367(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_368(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_369(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_370(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_376(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_375(struct mutex *ldv_func_arg1 ) ; char const *ceph_mds_state_name(int s ) { { switch (s) { case 0: ; return ("down:dne"); case -1: ; return ("down:stopped"); case -4: ; return ("up:boot"); case -5: ; return ("up:standby"); case -8: ; return ("up:standby-replay"); case -6: ; return ("up:creating"); case -7: ; return ("up:starting"); case 8: ; return ("up:replay"); case 9: ; return ("up:resolve"); case 10: ; return ("up:reconnect"); case 11: ; return ("up:rejoin"); case 12: ; return ("up:clientreplay"); case 13: ; return ("up:active"); case 14: ; return ("up:stopping"); } return ("???"); } } char const *ceph_session_op_name(int op ) { { switch (op) { case 0: ; return ("request_open"); case 1: ; return ("open"); case 2: ; return ("request_close"); case 3: ; return ("close"); case 4: ; return ("request_renewcaps"); case 5: ; return ("renewcaps"); case 6: ; return ("stale"); case 7: ; return ("recall_state"); } return ("???"); } } char const *ceph_mds_op_name(int op ) { { switch (op) { case 256: ; return ("lookup"); case 258: ; return ("lookuphash"); case 259: ; return ("lookupparent"); case 257: ; return ("getattr"); case 4357: ; return ("setxattr"); case 4360: ; return ("setattr"); case 4358: ; return ("rmxattr"); case 773: ; return ("readdir"); case 4609: ; return ("mknod"); case 4610: ; return ("link"); case 4611: ; return ("unlink"); case 4612: ; return ("rename"); case 4640: ; return ("mkdir"); case 4641: ; return ("rmdir"); case 4642: ; return ("symlink"); case 4865: ; return ("create"); case 770: ; return ("open"); case 1024: ; return ("lookupsnap"); case 1026: ; return ("lssnap"); case 5120: ; return ("mksnap"); case 5121: ; return ("rmsnap"); case 4361: ; return ("setfilelock"); case 272: ; return ("getfilelock"); } return ("???"); } } char const *ceph_cap_op_name(int op ) { { switch (op) { case 0: ; return ("grant"); case 1: ; return ("revoke"); case 2: ; return ("trunc"); case 3: ; return ("export"); case 4: ; return ("import"); case 5: ; return ("update"); case 6: ; return ("drop"); case 7: ; return ("flush"); case 8: ; return ("flush_ack"); case 9: ; return ("flushsnap"); case 10: ; return ("flushsnap_ack"); case 11: ; return ("release"); case 12: ; return ("renew"); } return ("???"); } } char const *ceph_lease_op_name(int o ) { { switch (o) { case 1: ; return ("revoke"); case 2: ; return ("release"); case 3: ; return ("renew"); case 4: ; return ("revoke_ack"); } return ("???"); } } char const *ceph_snap_op_name(int o ) { { switch (o) { case 0: ; return ("update"); case 1: ; return ("create"); case 2: ; return ("destroy"); case 3: ; return ("split"); } return ("???"); } } void ldv_mutex_lock_375(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_376(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_unlock_380(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_379(struct mutex *ldv_func_arg1 ) ; int ceph_frag_compare(__u32 a , __u32 b ) { unsigned int va ; __u32 tmp ; unsigned int vb ; __u32 tmp___0 ; { tmp = ceph_frag_value(a); va = tmp; tmp___0 = ceph_frag_value(b); vb = tmp___0; if (va < vb) { return (-1); } else { } if (va > vb) { return (1); } else { } va = ceph_frag_bits(a); vb = ceph_frag_bits(b); if (va < vb) { return (-1); } else { } if (va > vb) { return (1); } else { } return (0); } } void ldv_mutex_lock_379(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_380(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } int ldv_mutex_trylock_386(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_384(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_387(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_389(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_unlock_391(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_383(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_385(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_388(struct mutex *ldv_func_arg1 ) ; void ldv_mutex_lock_390(struct mutex *ldv_func_arg1 ) ; int ldv_mutex_trylock_mutex(struct mutex *lock ) ; __inline static char const *kobject_name(struct kobject const *kobj ) { { return ((char const *)kobj->name); } } __inline static char const *dev_name(struct device const *dev ) { char const *tmp ; { if ((unsigned long )dev->init_name != (unsigned long )((char const */* const */)0)) { return ((char const *)dev->init_name); } else { } tmp = kobject_name(& dev->kobj); return (tmp); } } extern loff_t generic_file_llseek(struct file * , loff_t , int ) ; __inline static void __simple_attr_check_format(char const *fmt , ...) { { return; } } extern int simple_attr_open(struct inode * , struct file * , int (*)(void * , u64 * ) , int (*)(void * , u64 ) , char const * ) ; extern int simple_attr_release(struct inode * , struct file * ) ; extern ssize_t simple_attr_read(struct file * , char * , size_t , loff_t * ) ; extern ssize_t simple_attr_write(struct file * , char const * , size_t , loff_t * ) ; extern ssize_t seq_read(struct file * , char * , size_t , loff_t * ) ; extern loff_t seq_lseek(struct file * , loff_t , int ) ; extern int single_open(struct file * , int (*)(struct seq_file * , void * ) , void * ) ; extern int single_release(struct inode * , struct file * ) ; extern struct dentry *debugfs_create_file(char const * , umode_t , struct dentry * , void * , struct file_operations const * ) ; extern struct dentry *debugfs_create_symlink(char const * , struct dentry * , char const * ) ; extern void debugfs_remove(struct dentry * ) ; static int mdsmap_show(struct seq_file *s , void *p ) { int i ; struct ceph_fs_client *fsc ; struct ceph_entity_addr *addr ; int state ; char const *tmp ; char const *tmp___0 ; { fsc = (struct ceph_fs_client *)s->private; if ((unsigned long )fsc->mdsc == (unsigned long )((struct ceph_mds_client *)0) || (unsigned long )(fsc->mdsc)->mdsmap == (unsigned long )((struct ceph_mdsmap *)0)) { return (0); } else { } seq_printf(s, "epoch %d\n", ((fsc->mdsc)->mdsmap)->m_epoch); seq_printf(s, "root %d\n", ((fsc->mdsc)->mdsmap)->m_root); seq_printf(s, "session_timeout %d\n", ((fsc->mdsc)->mdsmap)->m_session_timeout); seq_printf(s, "session_autoclose %d\n", ((fsc->mdsc)->mdsmap)->m_session_autoclose); i = 0; goto ldv_30681; ldv_30680: addr = & (((fsc->mdsc)->mdsmap)->m_info + (unsigned long )i)->addr; state = (((fsc->mdsc)->mdsmap)->m_info + (unsigned long )i)->state; tmp = ceph_mds_state_name(state); tmp___0 = ceph_pr_addr((struct __kernel_sockaddr_storage const *)(& addr->in_addr)); seq_printf(s, "\tmds%d\t%s\t(%s)\n", i, tmp___0, tmp); i = i + 1; ldv_30681: ; if ((u32 )i < ((fsc->mdsc)->mdsmap)->m_max_mds) { goto ldv_30680; } else { } return (0); } } static int mdsc_show(struct seq_file *s , void *p ) { struct ceph_fs_client *fsc ; struct ceph_mds_client *mdsc ; struct ceph_mds_request *req ; struct rb_node *rp ; int pathlen ; u64 pathbase ; char *path ; struct rb_node const *__mptr ; char const *tmp ; u64 tmp___0 ; long tmp___1 ; u64 tmp___2 ; long tmp___3 ; u64 tmp___4 ; { fsc = (struct ceph_fs_client *)s->private; mdsc = fsc->mdsc; ldv_mutex_lock_390(& mdsc->mutex); rp = rb_first((struct rb_root const *)(& mdsc->request_tree)); goto ldv_30697; ldv_30696: __mptr = (struct rb_node const *)rp; req = (struct ceph_mds_request *)__mptr + 0xfffffffffffffff8UL; if ((unsigned long )req->r_request != (unsigned long )((struct ceph_msg *)0) && (unsigned long )req->r_session != (unsigned long )((struct ceph_mds_session *)0)) { seq_printf(s, "%lld\tmds%d\t", req->r_tid, (req->r_session)->s_mds); } else if ((unsigned long )req->r_request == (unsigned long )((struct ceph_msg *)0)) { seq_printf(s, "%lld\t(no request)\t", req->r_tid); } else { seq_printf(s, "%lld\t(no session)\t", req->r_tid); } tmp = ceph_mds_op_name(req->r_op); seq_printf(s, "%s", tmp); if ((int )req->r_got_unsafe) { seq_printf(s, "\t(unsafe)"); } else { seq_printf(s, "\t"); } if ((unsigned long )req->r_inode != (unsigned long )((struct inode *)0)) { tmp___0 = ceph_ino(req->r_inode); seq_printf(s, " #%llx", tmp___0); } else if ((unsigned long )req->r_dentry != (unsigned long )((struct dentry *)0)) { path = ceph_mdsc_build_path(req->r_dentry, & pathlen, & pathbase, 0); tmp___1 = IS_ERR((void const *)path); if (tmp___1 != 0L) { path = 0; } else { } spin_lock(& (req->r_dentry)->d_lock); tmp___2 = ceph_ino(((req->r_dentry)->d_parent)->d_inode); seq_printf(s, " #%llx/%.*s (%s)", tmp___2, (req->r_dentry)->d_name.ldv_11489.ldv_11487.len, (req->r_dentry)->d_name.name, (unsigned long )path != (unsigned long )((char *)0) ? path : (char *)""); spin_unlock(& (req->r_dentry)->d_lock); kfree((void const *)path); } else if ((unsigned long )req->r_path1 != (unsigned long )((char *)0)) { seq_printf(s, " #%llx/%s", req->r_ino1.ino, req->r_path1); } else { } if ((unsigned long )req->r_old_dentry != (unsigned long )((struct dentry *)0)) { path = ceph_mdsc_build_path(req->r_old_dentry, & pathlen, & pathbase, 0); tmp___3 = IS_ERR((void const *)path); if (tmp___3 != 0L) { path = 0; } else { } spin_lock(& (req->r_old_dentry)->d_lock); tmp___4 = ceph_ino(req->r_old_dentry_dir); seq_printf(s, " #%llx/%.*s (%s)", tmp___4, (req->r_old_dentry)->d_name.ldv_11489.ldv_11487.len, (req->r_old_dentry)->d_name.name, (unsigned long )path != (unsigned long )((char *)0) ? path : (char *)""); spin_unlock(& (req->r_old_dentry)->d_lock); kfree((void const *)path); } else if ((unsigned long )req->r_path2 != (unsigned long )((char *)0)) { if (req->r_ino2.ino != 0ULL) { seq_printf(s, " #%llx/%s", req->r_ino2.ino, req->r_path2); } else { seq_printf(s, " %s", req->r_path2); } } else { } seq_printf(s, "\n"); rp = rb_next((struct rb_node const *)rp); ldv_30697: ; if ((unsigned long )rp != (unsigned long )((struct rb_node *)0)) { goto ldv_30696; } else { } ldv_mutex_unlock_391(& mdsc->mutex); return (0); } } static int caps_show(struct seq_file *s , void *p ) { struct ceph_fs_client *fsc ; int total ; int avail ; int used ; int reserved ; int min ; { fsc = (struct ceph_fs_client *)s->private; ceph_reservation_status(fsc, & total, & avail, & used, & reserved, & min); seq_printf(s, "total\t\t%d\navail\t\t%d\nused\t\t%d\nreserved\t%d\nmin\t%d\n", total, avail, used, reserved, min); return (0); } } static int dentry_lru_show(struct seq_file *s , void *ptr ) { struct ceph_fs_client *fsc ; struct ceph_mds_client *mdsc ; struct ceph_dentry_info *di ; struct list_head const *__mptr ; struct dentry *dentry ; struct list_head const *__mptr___0 ; { fsc = (struct ceph_fs_client *)s->private; mdsc = fsc->mdsc; spin_lock(& mdsc->dentry_lru_lock); __mptr = (struct list_head const *)mdsc->dentry_lru.next; di = (struct ceph_dentry_info *)__mptr + 0xffffffffffffffd0UL; goto ldv_30722; ldv_30721: dentry = di->dentry; seq_printf(s, "%p %p\t%.*s\n", di, dentry, dentry->d_name.ldv_11489.ldv_11487.len, dentry->d_name.name); __mptr___0 = (struct list_head const *)di->lru.next; di = (struct ceph_dentry_info *)__mptr___0 + 0xffffffffffffffd0UL; ldv_30722: ; if ((unsigned long )(& di->lru) != (unsigned long )(& mdsc->dentry_lru)) { goto ldv_30721; } else { } spin_unlock(& mdsc->dentry_lru_lock); return (0); } } static int mdsmap_show_open(struct inode *inode , struct file *file ) { struct seq_file *sf ; int ret ; { ret = single_open(file, & mdsmap_show, 0); sf = (struct seq_file *)file->private_data; sf->private = inode->i_private; return (ret); } } static struct file_operations const mdsmap_show_fops = {0, & seq_lseek, & seq_read, 0, 0, 0, 0, 0, 0, 0, 0, & mdsmap_show_open, 0, & single_release, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; static int mdsc_show_open(struct inode *inode , struct file *file ) { struct seq_file *sf ; int ret ; { ret = single_open(file, & mdsc_show, 0); sf = (struct seq_file *)file->private_data; sf->private = inode->i_private; return (ret); } } static struct file_operations const mdsc_show_fops = {0, & seq_lseek, & seq_read, 0, 0, 0, 0, 0, 0, 0, 0, & mdsc_show_open, 0, & single_release, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; static int caps_show_open(struct inode *inode , struct file *file ) { struct seq_file *sf ; int ret ; { ret = single_open(file, & caps_show, 0); sf = (struct seq_file *)file->private_data; sf->private = inode->i_private; return (ret); } } static struct file_operations const caps_show_fops = {0, & seq_lseek, & seq_read, 0, 0, 0, 0, 0, 0, 0, 0, & caps_show_open, 0, & single_release, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; static int dentry_lru_show_open(struct inode *inode , struct file *file ) { struct seq_file *sf ; int ret ; { ret = single_open(file, & dentry_lru_show, 0); sf = (struct seq_file *)file->private_data; sf->private = inode->i_private; return (ret); } } static struct file_operations const dentry_lru_show_fops = {0, & seq_lseek, & seq_read, 0, 0, 0, 0, 0, 0, 0, 0, & dentry_lru_show_open, 0, & single_release, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; static int congestion_kb_set(void *data , u64 val ) { struct ceph_fs_client *fsc ; { fsc = (struct ceph_fs_client *)data; (fsc->mount_options)->congestion_kb = (int )val; return (0); } } static int congestion_kb_get(void *data , u64 *val ) { struct ceph_fs_client *fsc ; { fsc = (struct ceph_fs_client *)data; *val = (unsigned long long )(fsc->mount_options)->congestion_kb; return (0); } } static int congestion_kb_fops_open(struct inode *inode , struct file *file ) { int tmp ; { __simple_attr_check_format("%llu\n", 0ULL); tmp = simple_attr_open(inode, file, & congestion_kb_get, & congestion_kb_set, "%llu\n"); return (tmp); } } static struct file_operations const congestion_kb_fops = {& __this_module, & generic_file_llseek, & simple_attr_read, & simple_attr_write, 0, 0, 0, 0, 0, 0, 0, & congestion_kb_fops_open, 0, & simple_attr_release, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; void ceph_fs_debugfs_cleanup(struct ceph_fs_client *fsc ) { struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; { descriptor.modname = "ceph"; descriptor.function = "ceph_fs_debugfs_cleanup"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/debugfs.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_fs_debugfs_cleanup\n"; descriptor.lineno = 260U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/debugfs.c.prepared", 263); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_fs_debugfs_cleanup\n", 3, (char *)" ", tmp, 260); } else { } debugfs_remove(fsc->debugfs_bdi); debugfs_remove(fsc->debugfs_congestion_kb); debugfs_remove(fsc->debugfs_mdsmap); debugfs_remove(fsc->debugfs_caps); debugfs_remove(fsc->debugfs_mdsc); debugfs_remove(fsc->debugfs_dentry_lru); return; } } int ceph_fs_debugfs_init(struct ceph_fs_client *fsc ) { char name[100U] ; int err ; struct _ddebug descriptor ; char const *tmp ; long tmp___0 ; long tmp___1 ; char const *tmp___2 ; { err = -12; descriptor.modname = "ceph"; descriptor.function = "ceph_fs_debugfs_init"; descriptor.filename = "/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/debugfs.c.prepared"; descriptor.format = "%.*s %12.12s:%-4d : ceph_fs_debugfs_init\n"; descriptor.lineno = 274U; descriptor.flags = 0U; tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L); if (tmp___0 != 0L) { tmp = ceph_file_part("/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/debugfs.c.prepared", 263); __dynamic_pr_debug(& descriptor, "ceph: %.*s %12.12s:%-4d : ceph_fs_debugfs_init\n", 3, (char *)" ", tmp, 274); } else { } tmp___1 = ldv__builtin_expect((unsigned long )(fsc->client)->debugfs_dir == (unsigned long )((struct dentry *)0), 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/home/mikhail/launches/cpachecker-regression2/launcher-working-dir/ldv-manager-work-dir/work/current--X--fs/ceph/ceph.ko--X--regression-testlinux-3.8-rc1--X--32_7a--X--cpachecker/linux-3.8-rc1/csd_deg_dscv/27/dscv_tempdir/dscv/ri/32_7a/fs/ceph/debugfs.c.prepared"), "i" (275), "i" (12UL)); ldv_30779: ; goto ldv_30779; } else { } fsc->debugfs_congestion_kb = debugfs_create_file("writeback_congestion_kb", 384, (fsc->client)->debugfs_dir, (void *)fsc, & congestion_kb_fops); if ((unsigned long )fsc->debugfs_congestion_kb == (unsigned long )((struct dentry *)0)) { goto out; } else { } tmp___2 = dev_name((struct device const *)fsc->backing_dev_info.dev); snprintf((char *)(& name), 100UL, "../../bdi/%s", tmp___2); fsc->debugfs_bdi = debugfs_create_symlink("bdi", (fsc->client)->debugfs_dir, (char const *)(& name)); if ((unsigned long )fsc->debugfs_bdi == (unsigned long )((struct dentry *)0)) { goto out; } else { } fsc->debugfs_mdsmap = debugfs_create_file("mdsmap", 384, (fsc->client)->debugfs_dir, (void *)fsc, & mdsmap_show_fops); if ((unsigned long )fsc->debugfs_mdsmap == (unsigned long )((struct dentry *)0)) { goto out; } else { } fsc->debugfs_mdsc = debugfs_create_file("mdsc", 384, (fsc->client)->debugfs_dir, (void *)fsc, & mdsc_show_fops); if ((unsigned long )fsc->debugfs_mdsc == (unsigned long )((struct dentry *)0)) { goto out; } else { } fsc->debugfs_caps = debugfs_create_file("caps", 256, (fsc->client)->debugfs_dir, (void *)fsc, & caps_show_fops); if ((unsigned long )fsc->debugfs_caps == (unsigned long )((struct dentry *)0)) { goto out; } else { } fsc->debugfs_dentry_lru = debugfs_create_file("dentry_lru", 384, (fsc->client)->debugfs_dir, (void *)fsc, & dentry_lru_show_fops); if ((unsigned long )fsc->debugfs_dentry_lru == (unsigned long )((struct dentry *)0)) { goto out; } else { } return (0); out: ceph_fs_debugfs_cleanup(fsc); return (err); } } void ldv_mutex_lock_383(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_lock(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_384(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_lock(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_385(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } int ldv_mutex_trylock_386(struct mutex *ldv_func_arg1 ) { ldv_func_ret_type___2 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = mutex_trylock(ldv_func_arg1); ldv_func_res = tmp; tmp___0 = ldv_mutex_trylock_mutex(ldv_func_arg1); return (tmp___0); return (ldv_func_res); } } void ldv_mutex_unlock_387(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_388(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_cred_guard_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_389(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_cred_guard_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } void ldv_mutex_lock_390(struct mutex *ldv_func_arg1 ) { { ldv_mutex_lock_mutex(ldv_func_arg1); mutex_lock(ldv_func_arg1); return; } } void ldv_mutex_unlock_391(struct mutex *ldv_func_arg1 ) { { ldv_mutex_unlock_mutex(ldv_func_arg1); mutex_unlock(ldv_func_arg1); return; } } __inline static void ldv_error(void) __attribute__((__no_instrument_function__)) ; __inline static void ldv_error(void) { { ERROR: {reach_error();abort();} } } extern int __VERIFIER_nondet_int(void) ; long ldv__builtin_expect(long exp , long c ) { { return (exp); } } static int ldv_mutex_cred_guard_mutex ; int ldv_mutex_lock_interruptible_cred_guard_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_cred_guard_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_cred_guard_mutex = 2; return (0); } else { return (-4); } } } int ldv_mutex_lock_killable_cred_guard_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_cred_guard_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_cred_guard_mutex = 2; return (0); } else { return (-4); } } } void ldv_mutex_lock_cred_guard_mutex(struct mutex *lock ) { { if (ldv_mutex_cred_guard_mutex == 1) { } else { ldv_error(); } ldv_mutex_cred_guard_mutex = 2; return; } } int ldv_mutex_trylock_cred_guard_mutex(struct mutex *lock ) { int is_mutex_held_by_another_thread ; { if (ldv_mutex_cred_guard_mutex == 1) { } else { ldv_error(); } is_mutex_held_by_another_thread = __VERIFIER_nondet_int(); if (is_mutex_held_by_another_thread) { return (0); } else { ldv_mutex_cred_guard_mutex = 2; return (1); } } } int ldv_atomic_dec_and_mutex_lock_cred_guard_mutex(atomic_t *cnt , struct mutex *lock ) { int atomic_value_after_dec ; { if (ldv_mutex_cred_guard_mutex == 1) { } else { ldv_error(); } atomic_value_after_dec = __VERIFIER_nondet_int(); if (atomic_value_after_dec == 0) { ldv_mutex_cred_guard_mutex = 2; return (1); } else { } return (0); } } int ldv_mutex_is_locked_cred_guard_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_cred_guard_mutex == 1) { nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { return (0); } else { return (1); } } else { return (1); } } } void ldv_mutex_unlock_cred_guard_mutex(struct mutex *lock ) { { if (ldv_mutex_cred_guard_mutex == 2) { } else { ldv_error(); } ldv_mutex_cred_guard_mutex = 1; return; } } static int ldv_mutex_i_fragtree_mutex ; int ldv_mutex_lock_interruptible_i_fragtree_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_i_fragtree_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_i_fragtree_mutex = 2; return (0); } else { return (-4); } } } int ldv_mutex_lock_killable_i_fragtree_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_i_fragtree_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_i_fragtree_mutex = 2; return (0); } else { return (-4); } } } void ldv_mutex_lock_i_fragtree_mutex(struct mutex *lock ) { { if (ldv_mutex_i_fragtree_mutex == 1) { } else { ldv_error(); } ldv_mutex_i_fragtree_mutex = 2; return; } } int ldv_mutex_trylock_i_fragtree_mutex(struct mutex *lock ) { int is_mutex_held_by_another_thread ; { if (ldv_mutex_i_fragtree_mutex == 1) { } else { ldv_error(); } is_mutex_held_by_another_thread = __VERIFIER_nondet_int(); if (is_mutex_held_by_another_thread) { return (0); } else { ldv_mutex_i_fragtree_mutex = 2; return (1); } } } int ldv_atomic_dec_and_mutex_lock_i_fragtree_mutex(atomic_t *cnt , struct mutex *lock ) { int atomic_value_after_dec ; { if (ldv_mutex_i_fragtree_mutex == 1) { } else { ldv_error(); } atomic_value_after_dec = __VERIFIER_nondet_int(); if (atomic_value_after_dec == 0) { ldv_mutex_i_fragtree_mutex = 2; return (1); } else { } return (0); } } int ldv_mutex_is_locked_i_fragtree_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_i_fragtree_mutex == 1) { nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { return (0); } else { return (1); } } else { return (1); } } } void ldv_mutex_unlock_i_fragtree_mutex(struct mutex *lock ) { { if (ldv_mutex_i_fragtree_mutex == 2) { } else { ldv_error(); } ldv_mutex_i_fragtree_mutex = 1; return; } } static int ldv_mutex_i_mutex ; int ldv_mutex_lock_interruptible_i_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_i_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_i_mutex = 2; return (0); } else { return (-4); } } } int ldv_mutex_lock_killable_i_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_i_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_i_mutex = 2; return (0); } else { return (-4); } } } void ldv_mutex_lock_i_mutex(struct mutex *lock ) { { if (ldv_mutex_i_mutex == 1) { } else { ldv_error(); } ldv_mutex_i_mutex = 2; return; } } int ldv_mutex_trylock_i_mutex(struct mutex *lock ) { int is_mutex_held_by_another_thread ; { if (ldv_mutex_i_mutex == 1) { } else { ldv_error(); } is_mutex_held_by_another_thread = __VERIFIER_nondet_int(); if (is_mutex_held_by_another_thread) { return (0); } else { ldv_mutex_i_mutex = 2; return (1); } } } int ldv_atomic_dec_and_mutex_lock_i_mutex(atomic_t *cnt , struct mutex *lock ) { int atomic_value_after_dec ; { if (ldv_mutex_i_mutex == 1) { } else { ldv_error(); } atomic_value_after_dec = __VERIFIER_nondet_int(); if (atomic_value_after_dec == 0) { ldv_mutex_i_mutex = 2; return (1); } else { } return (0); } } int ldv_mutex_is_locked_i_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_i_mutex == 1) { nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { return (0); } else { return (1); } } else { return (1); } } } void ldv_mutex_unlock_i_mutex(struct mutex *lock ) { { if (ldv_mutex_i_mutex == 2) { } else { ldv_error(); } ldv_mutex_i_mutex = 1; return; } } static int ldv_mutex_lock ; int ldv_mutex_lock_interruptible_lock(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_lock == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_lock = 2; return (0); } else { return (-4); } } } int ldv_mutex_lock_killable_lock(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_lock == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_lock = 2; return (0); } else { return (-4); } } } void ldv_mutex_lock_lock(struct mutex *lock ) { { if (ldv_mutex_lock == 1) { } else { ldv_error(); } ldv_mutex_lock = 2; return; } } int ldv_mutex_trylock_lock(struct mutex *lock ) { int is_mutex_held_by_another_thread ; { if (ldv_mutex_lock == 1) { } else { ldv_error(); } is_mutex_held_by_another_thread = __VERIFIER_nondet_int(); if (is_mutex_held_by_another_thread) { return (0); } else { ldv_mutex_lock = 2; return (1); } } } int ldv_atomic_dec_and_mutex_lock_lock(atomic_t *cnt , struct mutex *lock ) { int atomic_value_after_dec ; { if (ldv_mutex_lock == 1) { } else { ldv_error(); } atomic_value_after_dec = __VERIFIER_nondet_int(); if (atomic_value_after_dec == 0) { ldv_mutex_lock = 2; return (1); } else { } return (0); } } int ldv_mutex_is_locked_lock(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_lock == 1) { nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { return (0); } else { return (1); } } else { return (1); } } } void ldv_mutex_unlock_lock(struct mutex *lock ) { { if (ldv_mutex_lock == 2) { } else { ldv_error(); } ldv_mutex_lock = 1; return; } } static int ldv_mutex_mount_mutex ; int ldv_mutex_lock_interruptible_mount_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_mount_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_mount_mutex = 2; return (0); } else { return (-4); } } } int ldv_mutex_lock_killable_mount_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_mount_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_mount_mutex = 2; return (0); } else { return (-4); } } } void ldv_mutex_lock_mount_mutex(struct mutex *lock ) { { if (ldv_mutex_mount_mutex == 1) { } else { ldv_error(); } ldv_mutex_mount_mutex = 2; return; } } int ldv_mutex_trylock_mount_mutex(struct mutex *lock ) { int is_mutex_held_by_another_thread ; { if (ldv_mutex_mount_mutex == 1) { } else { ldv_error(); } is_mutex_held_by_another_thread = __VERIFIER_nondet_int(); if (is_mutex_held_by_another_thread) { return (0); } else { ldv_mutex_mount_mutex = 2; return (1); } } } int ldv_atomic_dec_and_mutex_lock_mount_mutex(atomic_t *cnt , struct mutex *lock ) { int atomic_value_after_dec ; { if (ldv_mutex_mount_mutex == 1) { } else { ldv_error(); } atomic_value_after_dec = __VERIFIER_nondet_int(); if (atomic_value_after_dec == 0) { ldv_mutex_mount_mutex = 2; return (1); } else { } return (0); } } int ldv_mutex_is_locked_mount_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_mount_mutex == 1) { nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { return (0); } else { return (1); } } else { return (1); } } } void ldv_mutex_unlock_mount_mutex(struct mutex *lock ) { { if (ldv_mutex_mount_mutex == 2) { } else { ldv_error(); } ldv_mutex_mount_mutex = 1; return; } } static int ldv_mutex_mutex ; int ldv_mutex_lock_interruptible_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_mutex = 2; return (0); } else { return (-4); } } } int ldv_mutex_lock_killable_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_mutex = 2; return (0); } else { return (-4); } } } void ldv_mutex_lock_mutex(struct mutex *lock ) { { if (ldv_mutex_mutex == 1) { } else { ldv_error(); } ldv_mutex_mutex = 2; return; } } int ldv_mutex_trylock_mutex(struct mutex *lock ) { int is_mutex_held_by_another_thread ; { if (ldv_mutex_mutex == 1) { } else { ldv_error(); } is_mutex_held_by_another_thread = __VERIFIER_nondet_int(); if (is_mutex_held_by_another_thread) { return (0); } else { ldv_mutex_mutex = 2; return (1); } } } int ldv_atomic_dec_and_mutex_lock_mutex(atomic_t *cnt , struct mutex *lock ) { int atomic_value_after_dec ; { if (ldv_mutex_mutex == 1) { } else { ldv_error(); } atomic_value_after_dec = __VERIFIER_nondet_int(); if (atomic_value_after_dec == 0) { ldv_mutex_mutex = 2; return (1); } else { } return (0); } } int ldv_mutex_is_locked_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_mutex == 1) { nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { return (0); } else { return (1); } } else { return (1); } } } void ldv_mutex_unlock_mutex(struct mutex *lock ) { { if (ldv_mutex_mutex == 2) { } else { ldv_error(); } ldv_mutex_mutex = 1; return; } } static int ldv_mutex_r_fill_mutex ; int ldv_mutex_lock_interruptible_r_fill_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_r_fill_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_r_fill_mutex = 2; return (0); } else { return (-4); } } } int ldv_mutex_lock_killable_r_fill_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_r_fill_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_r_fill_mutex = 2; return (0); } else { return (-4); } } } void ldv_mutex_lock_r_fill_mutex(struct mutex *lock ) { { if (ldv_mutex_r_fill_mutex == 1) { } else { ldv_error(); } ldv_mutex_r_fill_mutex = 2; return; } } int ldv_mutex_trylock_r_fill_mutex(struct mutex *lock ) { int is_mutex_held_by_another_thread ; { if (ldv_mutex_r_fill_mutex == 1) { } else { ldv_error(); } is_mutex_held_by_another_thread = __VERIFIER_nondet_int(); if (is_mutex_held_by_another_thread) { return (0); } else { ldv_mutex_r_fill_mutex = 2; return (1); } } } int ldv_atomic_dec_and_mutex_lock_r_fill_mutex(atomic_t *cnt , struct mutex *lock ) { int atomic_value_after_dec ; { if (ldv_mutex_r_fill_mutex == 1) { } else { ldv_error(); } atomic_value_after_dec = __VERIFIER_nondet_int(); if (atomic_value_after_dec == 0) { ldv_mutex_r_fill_mutex = 2; return (1); } else { } return (0); } } int ldv_mutex_is_locked_r_fill_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_r_fill_mutex == 1) { nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { return (0); } else { return (1); } } else { return (1); } } } void ldv_mutex_unlock_r_fill_mutex(struct mutex *lock ) { { if (ldv_mutex_r_fill_mutex == 2) { } else { ldv_error(); } ldv_mutex_r_fill_mutex = 1; return; } } static int ldv_mutex_s_mutex ; int ldv_mutex_lock_interruptible_s_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_s_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_s_mutex = 2; return (0); } else { return (-4); } } } int ldv_mutex_lock_killable_s_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_s_mutex == 1) { } else { ldv_error(); } nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { ldv_mutex_s_mutex = 2; return (0); } else { return (-4); } } } void ldv_mutex_lock_s_mutex(struct mutex *lock ) { { if (ldv_mutex_s_mutex == 1) { } else { ldv_error(); } ldv_mutex_s_mutex = 2; return; } } int ldv_mutex_trylock_s_mutex(struct mutex *lock ) { int is_mutex_held_by_another_thread ; { if (ldv_mutex_s_mutex == 1) { } else { ldv_error(); } is_mutex_held_by_another_thread = __VERIFIER_nondet_int(); if (is_mutex_held_by_another_thread) { return (0); } else { ldv_mutex_s_mutex = 2; return (1); } } } int ldv_atomic_dec_and_mutex_lock_s_mutex(atomic_t *cnt , struct mutex *lock ) { int atomic_value_after_dec ; { if (ldv_mutex_s_mutex == 1) { } else { ldv_error(); } atomic_value_after_dec = __VERIFIER_nondet_int(); if (atomic_value_after_dec == 0) { ldv_mutex_s_mutex = 2; return (1); } else { } return (0); } } int ldv_mutex_is_locked_s_mutex(struct mutex *lock ) { int nondetermined ; { if (ldv_mutex_s_mutex == 1) { nondetermined = __VERIFIER_nondet_int(); if (nondetermined) { return (0); } else { return (1); } } else { return (1); } } } void ldv_mutex_unlock_s_mutex(struct mutex *lock ) { { if (ldv_mutex_s_mutex == 2) { } else { ldv_error(); } ldv_mutex_s_mutex = 1; return; } } void ldv_initialize(void) { { ldv_mutex_cred_guard_mutex = 1; ldv_mutex_i_fragtree_mutex = 1; ldv_mutex_i_mutex = 1; ldv_mutex_lock = 1; ldv_mutex_mount_mutex = 1; ldv_mutex_mutex = 1; ldv_mutex_r_fill_mutex = 1; ldv_mutex_s_mutex = 1; return; } } void ldv_check_final_state(void) { { if (ldv_mutex_cred_guard_mutex == 1) { } else { ldv_error(); } if (ldv_mutex_i_fragtree_mutex == 1) { } else { ldv_error(); } if (ldv_mutex_i_mutex == 1) { } else { ldv_error(); } if (ldv_mutex_lock == 1) { } else { ldv_error(); } if (ldv_mutex_mount_mutex == 1) { } else { ldv_error(); } if (ldv_mutex_mutex == 1) { } else { ldv_error(); } if (ldv_mutex_r_fill_mutex == 1) { } else { ldv_error(); } if (ldv_mutex_s_mutex == 1) { } else { ldv_error(); } return; } } #include "model/32_7a_cilled_true-unreach-call_linux-3.8-rc1-32_7a-fs--ceph--ceph.ko-ldv_main7_sequence_infinite_withcheck_stateful.env.c" #include "model/common.env.c"