Lines Matching full:sbi
12 struct autofs_info *autofs_new_ino(struct autofs_sb_info *sbi) in autofs_new_ino() argument
21 ino->sbi = sbi; in autofs_new_ino()
41 struct autofs_sb_info *sbi = autofs_sbi(sb); in autofs_kill_sb() local
49 if (sbi) { in autofs_kill_sb()
51 autofs_catatonic_mode(sbi); in autofs_kill_sb()
52 put_pid(sbi->oz_pgrp); in autofs_kill_sb()
57 if (sbi) in autofs_kill_sb()
58 kfree_rcu(sbi, rcu); in autofs_kill_sb()
63 struct autofs_sb_info *sbi = autofs_sbi(root->d_sb); in autofs_show_options() local
66 if (!sbi) in autofs_show_options()
69 seq_printf(m, ",fd=%d", sbi->pipefd); in autofs_show_options()
76 seq_printf(m, ",pgrp=%d", pid_vnr(sbi->oz_pgrp)); in autofs_show_options()
77 seq_printf(m, ",timeout=%lu", sbi->exp_timeout/HZ); in autofs_show_options()
78 seq_printf(m, ",minproto=%d", sbi->min_proto); in autofs_show_options()
79 seq_printf(m, ",maxproto=%d", sbi->max_proto); in autofs_show_options()
81 if (autofs_type_offset(sbi->type)) in autofs_show_options()
83 else if (autofs_type_direct(sbi->type)) in autofs_show_options()
87 if (sbi->flags & AUTOFS_SBI_STRICTEXPIRE) in autofs_show_options()
89 if (sbi->flags & AUTOFS_SBI_IGNORE) in autofs_show_options()
92 if (sbi->pipe) in autofs_show_options()
93 seq_printf(m, ",pipe_ino=%ld", file_inode(sbi->pipe)->i_ino); in autofs_show_options()
153 static int autofs_parse_fd(struct fs_context *fc, struct autofs_sb_info *sbi, in autofs_parse_fd() argument
182 if (sbi->pipe) in autofs_parse_fd()
183 fput(sbi->pipe); in autofs_parse_fd()
185 sbi->pipefd = result->uint_32; in autofs_parse_fd()
186 sbi->pipe = pipe; in autofs_parse_fd()
194 struct autofs_sb_info *sbi = fc->s_fs_info; in autofs_parse_param() local
206 return autofs_parse_fd(fc, sbi, param, &result); in autofs_parse_param()
224 sbi->min_proto = result.uint_32; in autofs_parse_param()
227 sbi->max_proto = result.uint_32; in autofs_parse_param()
230 set_autofs_type_indirect(&sbi->type); in autofs_parse_param()
233 set_autofs_type_direct(&sbi->type); in autofs_parse_param()
236 set_autofs_type_offset(&sbi->type); in autofs_parse_param()
239 sbi->flags |= AUTOFS_SBI_STRICTEXPIRE; in autofs_parse_param()
242 sbi->flags |= AUTOFS_SBI_IGNORE; in autofs_parse_param()
250 struct autofs_sb_info *sbi; in autofs_alloc_sbi() local
252 sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); in autofs_alloc_sbi()
253 if (!sbi) in autofs_alloc_sbi()
256 sbi->magic = AUTOFS_SBI_MAGIC; in autofs_alloc_sbi()
257 sbi->flags = AUTOFS_SBI_CATATONIC; in autofs_alloc_sbi()
258 sbi->min_proto = AUTOFS_MIN_PROTO_VERSION; in autofs_alloc_sbi()
259 sbi->max_proto = AUTOFS_MAX_PROTO_VERSION; in autofs_alloc_sbi()
260 sbi->pipefd = -1; in autofs_alloc_sbi()
262 set_autofs_type_indirect(&sbi->type); in autofs_alloc_sbi()
263 mutex_init(&sbi->wq_mutex); in autofs_alloc_sbi()
264 mutex_init(&sbi->pipe_mutex); in autofs_alloc_sbi()
265 spin_lock_init(&sbi->fs_lock); in autofs_alloc_sbi()
266 spin_lock_init(&sbi->lookup_lock); in autofs_alloc_sbi()
267 INIT_LIST_HEAD(&sbi->active_list); in autofs_alloc_sbi()
268 INIT_LIST_HEAD(&sbi->expiring_list); in autofs_alloc_sbi()
270 return sbi; in autofs_alloc_sbi()
275 struct autofs_sb_info *sbi = fc->s_fs_info; in autofs_validate_protocol() local
278 if (sbi->max_proto < AUTOFS_MIN_PROTO_VERSION || in autofs_validate_protocol()
279 sbi->min_proto > AUTOFS_MAX_PROTO_VERSION) { in autofs_validate_protocol()
282 sbi->min_proto, sbi->max_proto, in autofs_validate_protocol()
288 if (sbi->max_proto > AUTOFS_MAX_PROTO_VERSION) in autofs_validate_protocol()
289 sbi->version = AUTOFS_MAX_PROTO_VERSION; in autofs_validate_protocol()
291 sbi->version = sbi->max_proto; in autofs_validate_protocol()
293 switch (sbi->version) { in autofs_validate_protocol()
295 sbi->sub_version = 7; in autofs_validate_protocol()
298 sbi->sub_version = AUTOFS_PROTO_SUBVERSION; in autofs_validate_protocol()
301 sbi->sub_version = 0; in autofs_validate_protocol()
310 struct autofs_sb_info *sbi = s->s_fs_info; in autofs_fill_super() local
314 pr_debug("starting up, sbi = %p\n", sbi); in autofs_fill_super()
316 sbi->sb = s; in autofs_fill_super()
327 ino = autofs_new_ino(sbi); in autofs_fill_super()
348 sbi->oz_pgrp = find_get_pid(ctx->pgrp); in autofs_fill_super()
349 if (!sbi->oz_pgrp) in autofs_fill_super()
353 sbi->oz_pgrp = get_task_pid(current, PIDTYPE_PGID); in autofs_fill_super()
355 if (autofs_type_trigger(sbi->type)) in autofs_fill_super()
363 sbi->pipefd, pid_nr(sbi->oz_pgrp)); in autofs_fill_super()
365 sbi->flags &= ~AUTOFS_SBI_CATATONIC; in autofs_fill_super()
374 struct autofs_sb_info *sbi = fc->s_fs_info; in autofs_get_tree() local
381 if (sbi->pipefd < 0) in autofs_get_tree()
390 struct autofs_sb_info *sbi = fc->s_fs_info; in autofs_free_fc() local
392 if (sbi) { in autofs_free_fc()
393 if (sbi->pipe) in autofs_free_fc()
394 fput(sbi->pipe); in autofs_free_fc()
395 kfree(sbi); in autofs_free_fc()
412 struct autofs_sb_info *sbi; in autofs_init_fs_context() local
421 sbi = autofs_alloc_sbi(); in autofs_init_fs_context()
422 if (!sbi) in autofs_init_fs_context()
426 fc->s_fs_info = sbi; in autofs_init_fs_context()