Lines Matching defs:ceph_inode_info
346 struct ceph_inode_info { struct
347 struct netfs_inode netfs; /* Netfslib context and vfs inode */
348 struct ceph_vino i_vino; /* ceph ino + snap */
350 spinlock_t i_ceph_lock;
352 u64 i_version;
353 u64 i_inline_version;
354 u32 i_time_warp_seq;
356 unsigned long i_ceph_flags;
357 atomic64_t i_release_count;
358 atomic64_t i_ordered_count;
359 atomic64_t i_complete_seq[2];
361 struct ceph_dir_layout i_dir_layout;
362 struct ceph_file_layout i_layout;
363 struct ceph_file_layout i_cached_layout; // for async creates
364 char *i_symlink;
367 struct timespec64 i_rctime;
368 u64 i_rbytes, i_rfiles, i_rsubdirs, i_rsnaps;
369 u64 i_files, i_subdirs;
372 u64 i_max_bytes, i_max_files;
374 s32 i_dir_pin;
376 struct rb_root i_fragtree;
377 int i_fragtree_nsplits;
378 struct mutex i_fragtree_mutex;
380 struct ceph_inode_xattrs_info i_xattrs;
384 struct rb_root i_caps; /* cap list */
385 struct ceph_cap *i_auth_cap; /* authoritative cap, if any */
386 unsigned i_dirty_caps, i_flushing_caps; /* mask of dirtied fields */
395 struct list_head i_dirty_item;
404 struct list_head i_flushing_item;
409 struct ceph_cap_flush *i_prealloc_cap_flush;
410 struct list_head i_cap_flush_list;
411 wait_queue_head_t i_cap_wq; /* threads waiting on a capability */
412 unsigned long i_hold_caps_max; /* jiffies */
413 struct list_head i_cap_delay_list; /* for delayed cap release to mds */
414 struct ceph_cap_reservation i_cap_migration_resv;
415 struct list_head i_cap_snaps; /* snapped state pending flush to mds */
416 struct ceph_snap_context *i_head_snapc; /* set if wr_buffer_head > 0 or
418 unsigned i_snap_caps; /* cap bits for snapped files */
420 unsigned long i_last_rd;
421 unsigned long i_last_wr;
422 int i_nr_by_mode[CEPH_FILE_MODE_BITS]; /* open file counts */
424 struct mutex i_truncate_mutex;
425 u32 i_truncate_seq; /* last truncate to smaller size */
426 u64 i_truncate_size; /* and the size we last truncated down to */
427 int i_truncate_pending; /* still need to call vmtruncate */
432 u64 i_truncate_pagecache_size;
434 u64 i_max_size; /* max file size authorized by mds */
435 u64 i_reported_size; /* (max_)size reported to or requested of mds */
436 u64 i_wanted_max_size; /* offset we'd like to write too */
437 u64 i_requested_max_size; /* max_size we've requested */
440 int i_pin_ref;
441 int i_rd_ref, i_rdcache_ref, i_wr_ref, i_wb_ref, i_fx_ref;
442 int i_wrbuffer_ref, i_wrbuffer_ref_head;
443 atomic_t i_filelock_ref;
444 atomic_t i_shared_gen; /* increment each time we get FILE_SHARED */
445 u32 i_rdcache_gen; /* incremented each time we get FILE_CACHE. */
446 u32 i_rdcache_revoking; /* RDCACHE gen to async invalidate, if any */
448 struct list_head i_unsafe_dirops; /* uncommitted mds dir ops */
449 struct list_head i_unsafe_iops; /* uncommitted mds inode ops */
450 spinlock_t i_unsafe_lock;
452 union {
456 struct list_head i_snap_realm_item;
457 struct list_head i_snap_flush_item;
458 struct timespec64 i_btime;
459 struct timespec64 i_snap_btime;
461 struct work_struct i_work;
485 static inline struct ceph_inode_info * argument