Lines Matching refs:sbi
13 struct autofs_info *autofs_new_ino(struct autofs_sb_info *sbi)
22 ino->sbi = sbi;
42 struct autofs_sb_info *sbi = autofs_sbi(sb);
50 if (sbi) {
52 autofs_catatonic_mode(sbi);
53 put_pid(sbi->oz_pgrp);
58 if (sbi)
59 kfree_rcu(sbi, rcu);
64 struct autofs_sb_info *sbi = autofs_sbi(root->d_sb);
67 if (!sbi)
70 seq_printf(m, ",fd=%d", sbi->pipefd);
77 seq_printf(m, ",pgrp=%d", pid_vnr(sbi->oz_pgrp));
78 seq_printf(m, ",timeout=%lu", sbi->exp_timeout/HZ);
79 seq_printf(m, ",minproto=%d", sbi->min_proto);
80 seq_printf(m, ",maxproto=%d", sbi->max_proto);
82 if (autofs_type_offset(sbi->type))
84 else if (autofs_type_direct(sbi->type))
88 if (sbi->flags & AUTOFS_SBI_STRICTEXPIRE)
90 if (sbi->flags & AUTOFS_SBI_IGNORE)
93 if (sbi->pipe)
94 seq_printf(m, ",pipe_ino=%ld", file_inode(sbi->pipe)->i_ino);
134 struct autofs_sb_info *sbi)
146 sbi->min_proto = AUTOFS_MIN_PROTO_VERSION;
147 sbi->max_proto = AUTOFS_MAX_PROTO_VERSION;
149 sbi->pipefd = -1;
165 sbi->pipefd = pipefd;
192 sbi->min_proto = option;
197 sbi->max_proto = option;
200 set_autofs_type_indirect(&sbi->type);
203 set_autofs_type_direct(&sbi->type);
206 set_autofs_type_offset(&sbi->type);
209 sbi->flags |= AUTOFS_SBI_STRICTEXPIRE;
212 sbi->flags |= AUTOFS_SBI_IGNORE;
218 return (sbi->pipefd < 0);
226 struct autofs_sb_info *sbi;
232 sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
233 if (!sbi)
235 pr_debug("starting up, sbi = %p\n", sbi);
237 s->s_fs_info = sbi;
238 sbi->magic = AUTOFS_SBI_MAGIC;
239 sbi->pipefd = -1;
240 sbi->pipe = NULL;
241 sbi->exp_timeout = 0;
242 sbi->oz_pgrp = NULL;
243 sbi->sb = s;
244 sbi->version = 0;
245 sbi->sub_version = 0;
246 sbi->flags = AUTOFS_SBI_CATATONIC;
247 set_autofs_type_indirect(&sbi->type);
248 sbi->min_proto = 0;
249 sbi->max_proto = 0;
250 mutex_init(&sbi->wq_mutex);
251 mutex_init(&sbi->pipe_mutex);
252 spin_lock_init(&sbi->fs_lock);
253 sbi->queues = NULL;
254 spin_lock_init(&sbi->lookup_lock);
255 INIT_LIST_HEAD(&sbi->active_list);
256 INIT_LIST_HEAD(&sbi->expiring_list);
267 ino = autofs_new_ino(sbi);
283 if (parse_options(data, root_inode, &pgrp, &pgrp_set, sbi)) {
289 if (sbi->max_proto < AUTOFS_MIN_PROTO_VERSION ||
290 sbi->min_proto > AUTOFS_MAX_PROTO_VERSION) {
293 sbi->min_proto, sbi->max_proto,
299 if (sbi->max_proto > AUTOFS_MAX_PROTO_VERSION)
300 sbi->version = AUTOFS_MAX_PROTO_VERSION;
302 sbi->version = sbi->max_proto;
303 sbi->sub_version = AUTOFS_PROTO_SUBVERSION;
306 sbi->oz_pgrp = find_get_pid(pgrp);
307 if (!sbi->oz_pgrp) {
313 sbi->oz_pgrp = get_task_pid(current, PIDTYPE_PGID);
316 if (autofs_type_trigger(sbi->type))
323 sbi->pipefd, pid_nr(sbi->oz_pgrp));
324 pipe = fget(sbi->pipefd);
333 sbi->pipe = pipe;
334 sbi->flags &= ~AUTOFS_SBI_CATATONIC;
349 put_pid(sbi->oz_pgrp);
356 kfree(sbi);