aboutsummaryrefslogtreecommitdiffstats
path: root/kernel4/linux/auto_fs_i.h
blob: 93d796ebe3fda0ec54aa6c7ea2f88799445e4f47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* -*- linux-c -*- ------------------------------------------------------- *
 *   
 * linux/include/linux/auto_fs_i.h
 *
 *   Copyright 1997 Transmeta Corporation - All Rights Reserved
 *
 * This file is part of the Linux kernel and is made available under
 * the terms of the GNU General Public License, version 2, or at your
 * option, any later version, incorporated herein by reference.
 *
 * ----------------------------------------------------------------------- */


#ifndef _LINUX_AUTO_FS_I_H
#define _LINUX_AUTO_FS_I_H

#include <linux/lists.h>

struct autofs_inode_hash {
	ino_t ino;
	struct dentry *dent;
};

struct autofs_inode_hash_tbl {
	int entries;
	int maxent;		/* Highest entry number = max entries - 1 */
	int shiftcnt;
	struct autofs_inode_hash *hash;
	void (*free)(const void *);
};

struct autofs_inode_info {
	unsigned long		last_usage;   /* last time entried touched */
	struct list_head	*expiry;      /* expiry queue pointers */
	char			*link_data;   /* symlink contents */
	int			dir_mode;     /* mode of a directory */
	unsigned long		dir_cookie;   /* magic cookie for user space */
	struct wait_queue	*dir_queue;   /* wait queue for locked dir */
};

struct autofs_sb_info {
	struct file 		*pipe;	      /* pipe to user space daemon */
	pid_t			oz_pgrp;      /* magic process group */
	ino_t			next_ino;     /* next available inode number */
	unsigned long 		exp_timeout;  /* expiry timeout (jiffies) */
	struct list_head	*expiry;      /* expiry queue */
	struct autofs_inode_hash_tbl ihash;   /* inode hash table */
	struct autofs_wait_queue *queues;     /* wait queue linked list */
};

#endif /* _LINUX_AUTO_FS_I_H */