Lines Matching refs:sbi
13 struct autofs_info *autofs_new_ino(struct autofs_sb_info *sbi)
22 ino->sbi = sbi;
41 struct autofs_sb_info *sbi = autofs_sbi(sb);
49 if (sbi) {
51 autofs_catatonic_mode(sbi);
52 put_pid(sbi->oz_pgrp);
57 if (sbi)
58 kfree_rcu(sbi, rcu);
63 struct autofs_sb_info *sbi = autofs_sbi(root->d_sb);
66 if (!sbi)
69 seq_printf(m, ",fd=%d", sbi->pipefd);
76 seq_printf(m, ",pgrp=%d", pid_vnr(sbi->oz_pgrp));
77 seq_printf(m, ",timeout=%lu", sbi->exp_timeout/HZ);
78 seq_printf(m, ",minproto=%d", sbi->min_proto);
79 seq_printf(m, ",maxproto=%d", sbi->max_proto);
81 if (autofs_type_offset(sbi->type))
83 else if (autofs_type_direct(sbi->type))
87 if (sbi->flags & AUTOFS_SBI_STRICTEXPIRE)
89 if (sbi->flags & AUTOFS_SBI_IGNORE)
92 if (sbi->pipe)
93 seq_printf(m, ",pipe_ino=%ld", file_inode(sbi->pipe)->i_ino);
133 struct autofs_sb_info *sbi)
145 sbi->min_proto = AUTOFS_MIN_PROTO_VERSION;
146 sbi->max_proto = AUTOFS_MAX_PROTO_VERSION;
148 sbi->pipefd = -1;
164 sbi->pipefd = pipefd;
191 sbi->min_proto = option;
196 sbi->max_proto = option;
199 set_autofs_type_indirect(&sbi->type);
202 set_autofs_type_direct(&sbi->type);
205 set_autofs_type_offset(&sbi->type);
208 sbi->flags |= AUTOFS_SBI_STRICTEXPIRE;
211 sbi->flags |= AUTOFS_SBI_IGNORE;
217 return (sbi->pipefd < 0);
225 struct autofs_sb_info *sbi;
231 sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
232 if (!sbi)
234 pr_debug("starting up, sbi = %p\n", sbi);
236 s->s_fs_info = sbi;
237 sbi->magic = AUTOFS_SBI_MAGIC;
238 sbi->pipefd = -1;
239 sbi->pipe = NULL;
240 sbi->exp_timeout = 0;
241 sbi->oz_pgrp = NULL;
242 sbi->sb = s;
243 sbi->version = 0;
244 sbi->sub_version = 0;
245 sbi->flags = AUTOFS_SBI_CATATONIC;
246 set_autofs_type_indirect(&sbi->type);
247 sbi->min_proto = 0;
248 sbi->max_proto = 0;
249 mutex_init(&sbi->wq_mutex);
250 mutex_init(&sbi->pipe_mutex);
251 spin_lock_init(&sbi->fs_lock);
252 sbi->queues = NULL;
253 spin_lock_init(&sbi->lookup_lock);
254 INIT_LIST_HEAD(&sbi->active_list);
255 INIT_LIST_HEAD(&sbi->expiring_list);
266 ino = autofs_new_ino(sbi);
282 if (parse_options(data, root_inode, &pgrp, &pgrp_set, sbi)) {
288 if (sbi->max_proto < AUTOFS_MIN_PROTO_VERSION ||
289 sbi->min_proto > AUTOFS_MAX_PROTO_VERSION) {
292 sbi->min_proto, sbi->max_proto,
298 if (sbi->max_proto > AUTOFS_MAX_PROTO_VERSION)
299 sbi->version = AUTOFS_MAX_PROTO_VERSION;
301 sbi->version = sbi->max_proto;
302 sbi->sub_version = AUTOFS_PROTO_SUBVERSION;
305 sbi->oz_pgrp = find_get_pid(pgrp);
306 if (!sbi->oz_pgrp) {
312 sbi->oz_pgrp = get_task_pid(current, PIDTYPE_PGID);
315 if (autofs_type_trigger(sbi->type))
322 sbi->pipefd, pid_nr(sbi->oz_pgrp));
323 pipe = fget(sbi->pipefd);
332 sbi->pipe = pipe;
333 sbi->flags &= ~AUTOFS_SBI_CATATONIC;
348 put_pid(sbi->oz_pgrp);
355 kfree(sbi);