Lines Matching refs:seq

131 	u64 seq_a = ns_a->seq;  in mnt_ns_cmp()
132 u64 seq_b = ns_b->seq; in mnt_ns_cmp()
205 if (mnt_ns_id < ns->seq) in mnt_ns_find()
207 if (mnt_ns_id > ns->seq) in mnt_ns_find()
230 unsigned int seq; in lookup_mnt_ns() local
234 seq = read_seqbegin(&mnt_ns_tree_lock); in lookup_mnt_ns()
238 } while (read_seqretry(&mnt_ns_tree_lock, seq)); in lookup_mnt_ns()
782 int __legitimize_mnt(struct vfsmount *bastard, unsigned seq) in __legitimize_mnt() argument
785 if (read_seqretry(&mount_lock, seq)) in __legitimize_mnt()
792 if (likely(!read_seqretry(&mount_lock, seq))) in __legitimize_mnt()
806 static bool legitimize_mnt(struct vfsmount *bastard, unsigned seq) in legitimize_mnt() argument
808 int res = __legitimize_mnt(bastard, seq); in legitimize_mnt()
870 unsigned seq; in lookup_mnt() local
874 seq = read_seqbegin(&mount_lock); in lookup_mnt()
877 } while (!legitimize_mnt(m, seq)); in lookup_mnt()
1014 u64 seq; in check_anonymous_mnt() local
1019 seq = mnt->mnt_ns->seq_origin; in check_anonymous_mnt()
1020 return !seq || (seq == current->nsproxy->mnt_ns->seq); in check_anonymous_mnt()
1510 unsigned seq; in path_is_mountpoint() local
1518 seq = read_seqbegin(&mount_lock); in path_is_mountpoint()
1520 } while (read_seqretry(&mount_lock, seq)); in path_is_mountpoint()
2207 return current->nsproxy->mnt_ns->seq >= mnt_ns->seq; in mnt_ns_loop()
3083 ns->seq_origin = src_mnt_ns->seq; in open_detached_copy()
3425 unsigned seq = read_seqbegin(&mount_lock); in path_overmounted() local
3431 if (need_seqretry(&mount_lock, seq)) { in path_overmounted()
4193 new_ns->seq = atomic64_inc_return(&mnt_ns_seq); in alloc_mnt_ns()
5238 struct seq_file seq; member
5326 static int statmount_mnt_root(struct kstatmount *s, struct seq_file *seq) in statmount_mnt_root() argument
5329 size_t start = seq->count; in statmount_mnt_root()
5331 ret = show_path(seq, s->mnt->mnt_root); in statmount_mnt_root()
5335 if (unlikely(seq_has_overflowed(seq))) in statmount_mnt_root()
5342 seq->buf[seq->count] = '\0'; in statmount_mnt_root()
5343 seq->count = start; in statmount_mnt_root()
5344 seq_commit(seq, string_unescape_inplace(seq->buf + start, UNESCAPE_OCTAL)); in statmount_mnt_root()
5348 static int statmount_mnt_point(struct kstatmount *s, struct seq_file *seq) in statmount_mnt_point() argument
5354 err = seq_path_root(seq, &mnt_path, &s->root, ""); in statmount_mnt_point()
5358 static int statmount_fs_type(struct kstatmount *s, struct seq_file *seq) in statmount_fs_type() argument
5362 seq_puts(seq, sb->s_type->name); in statmount_fs_type()
5366 static void statmount_fs_subtype(struct kstatmount *s, struct seq_file *seq) in statmount_fs_subtype() argument
5371 seq_puts(seq, sb->s_subtype); in statmount_fs_subtype()
5374 static int statmount_sb_source(struct kstatmount *s, struct seq_file *seq) in statmount_sb_source() argument
5380 size_t start = seq->count; in statmount_sb_source()
5383 ret = sb->s_op->show_devname(seq, s->mnt->mnt_root); in statmount_sb_source()
5387 if (unlikely(seq_has_overflowed(seq))) in statmount_sb_source()
5391 seq->buf[seq->count] = '\0'; in statmount_sb_source()
5392 seq->count = start; in statmount_sb_source()
5393 seq_commit(seq, string_unescape_inplace(seq->buf + start, UNESCAPE_OCTAL)); in statmount_sb_source()
5395 seq_puts(seq, r->mnt_devname); in statmount_sb_source()
5403 s->sm.mnt_ns_id = ns->seq; in statmount_mnt_ns_id()
5406 static int statmount_mnt_opts(struct kstatmount *s, struct seq_file *seq) in statmount_mnt_opts() argument
5410 size_t start = seq->count; in statmount_mnt_opts()
5413 err = security_sb_show_options(seq, sb); in statmount_mnt_opts()
5418 err = sb->s_op->show_options(seq, mnt->mnt_root); in statmount_mnt_opts()
5423 if (unlikely(seq_has_overflowed(seq))) in statmount_mnt_opts()
5426 if (seq->count == start) in statmount_mnt_opts()
5430 memmove(seq->buf + start, seq->buf + start + 1, in statmount_mnt_opts()
5431 seq->count - start - 1); in statmount_mnt_opts()
5432 seq->count--; in statmount_mnt_opts()
5437 static inline int statmount_opt_process(struct seq_file *seq, size_t start) in statmount_opt_process() argument
5442 if (unlikely(seq_has_overflowed(seq))) in statmount_opt_process()
5445 buf_end = seq->buf + seq->count; in statmount_opt_process()
5446 dst = seq->buf + start; in statmount_opt_process()
5450 seq->count = start; in statmount_opt_process()
5462 seq->count = dst - 1 - seq->buf; in statmount_opt_process()
5466 static int statmount_opt_array(struct kstatmount *s, struct seq_file *seq) in statmount_opt_array() argument
5470 size_t start = seq->count; in statmount_opt_array()
5476 err = sb->s_op->show_options(seq, mnt->mnt_root); in statmount_opt_array()
5480 err = statmount_opt_process(seq, start); in statmount_opt_array()
5488 static int statmount_opt_sec_array(struct kstatmount *s, struct seq_file *seq) in statmount_opt_sec_array() argument
5492 size_t start = seq->count; in statmount_opt_sec_array()
5495 err = security_sb_show_options(seq, sb); in statmount_opt_sec_array()
5499 err = statmount_opt_process(seq, start); in statmount_opt_sec_array()
5507 static inline int statmount_mnt_uidmap(struct kstatmount *s, struct seq_file *seq) in statmount_mnt_uidmap() argument
5511 ret = statmount_mnt_idmap(s->idmap, seq, true); in statmount_mnt_uidmap()
5527 static inline int statmount_mnt_gidmap(struct kstatmount *s, struct seq_file *seq) in statmount_mnt_gidmap() argument
5531 ret = statmount_mnt_idmap(s->idmap, seq, false); in statmount_mnt_gidmap()
5551 struct seq_file *seq = &s->seq; in statmount_string() local
5556 if (!seq->count) in statmount_string()
5557 seq_putc(seq, 0); in statmount_string()
5559 start = seq->count; in statmount_string()
5564 ret = statmount_fs_type(s, seq); in statmount_string()
5568 ret = statmount_mnt_root(s, seq); in statmount_string()
5572 ret = statmount_mnt_point(s, seq); in statmount_string()
5576 ret = statmount_mnt_opts(s, seq); in statmount_string()
5580 ret = statmount_opt_array(s, seq); in statmount_string()
5584 ret = statmount_opt_sec_array(s, seq); in statmount_string()
5588 statmount_fs_subtype(s, seq); in statmount_string()
5592 ret = statmount_sb_source(s, seq); in statmount_string()
5596 ret = statmount_mnt_uidmap(s, seq); in statmount_string()
5600 ret = statmount_mnt_gidmap(s, seq); in statmount_string()
5611 if (seq->count == start) in statmount_string()
5613 if (unlikely(check_add_overflow(sizeof(*sm), seq->count, &kbufsize))) in statmount_string()
5619 if (unlikely(seq_has_overflowed(seq))) in statmount_string()
5625 seq->buf[seq->count++] = '\0'; in statmount_string()
5634 struct seq_file *seq = &s->seq; in copy_statmount_to_user() local
5638 if (seq->count && copy_to_user(str, seq->buf, seq->count)) in copy_statmount_to_user()
5642 sm->size = copysize + seq->count; in copy_statmount_to_user()
5850 ks->seq.buf = kvmalloc(seq_size, GFP_KERNEL_ACCOUNT); in prepare_kstatmount()
5851 if (!ks->seq.buf) in prepare_kstatmount()
5854 ks->seq.size = seq_size; in prepare_kstatmount()
5965 kvfree(ks->seq.buf); in SYSCALL_DEFINE4()
6108 ns->seq = atomic64_inc_return(&mnt_ns_seq); in init_mount_tree()