fuse_i.h (334f485df85ac7736ebe14940bf0a059c5f26d7d) fuse_i.h (e5e5558e923f35839108a12718494ecb73fb782f)
1/*
2 FUSE: Filesystem in Userspace
3 Copyright (C) 2001-2005 Miklos Szeredi <miklos@szeredi.hu>
4
5 This program can be distributed under the terms of the GNU GPL.
6 See the file COPYING.
7*/
8

--- 16 unchanged lines hidden (view full) ---

25struct fuse_inode {
26 /** Inode data */
27 struct inode inode;
28
29 /** Unique ID, which identifies the inode between userspace
30 * and kernel */
31 u64 nodeid;
32
1/*
2 FUSE: Filesystem in Userspace
3 Copyright (C) 2001-2005 Miklos Szeredi <miklos@szeredi.hu>
4
5 This program can be distributed under the terms of the GNU GPL.
6 See the file COPYING.
7*/
8

--- 16 unchanged lines hidden (view full) ---

25struct fuse_inode {
26 /** Inode data */
27 struct inode inode;
28
29 /** Unique ID, which identifies the inode between userspace
30 * and kernel */
31 u64 nodeid;
32
33 /** The request used for sending the FORGET message */
34 struct fuse_req *forget_req;
35
33 /** Time in jiffies until the file attributes are valid */
34 unsigned long i_time;
35};
36
37/** One input argument of a request */
38struct fuse_in_arg {
39 unsigned size;
40 const void *value;

--- 83 unchanged lines hidden (view full) ---

124 /** The request output */
125 struct fuse_out out;
126
127 /** Used to wake up the task waiting for completion of request*/
128 wait_queue_head_t waitq;
129
130 /** Data for asynchronous requests */
131 union {
36 /** Time in jiffies until the file attributes are valid */
37 unsigned long i_time;
38};
39
40/** One input argument of a request */
41struct fuse_in_arg {
42 unsigned size;
43 const void *value;

--- 83 unchanged lines hidden (view full) ---

127 /** The request output */
128 struct fuse_out out;
129
130 /** Used to wake up the task waiting for completion of request*/
131 wait_queue_head_t waitq;
132
133 /** Data for asynchronous requests */
134 union {
135 struct fuse_forget_in forget_in;
132 struct fuse_init_in_out init_in_out;
133 } misc;
134
135 /** page vector */
136 struct page *pages[FUSE_MAX_PAGES_PER_REQ];
137
138 /** number of pages in vector */
139 unsigned num_pages;

--- 52 unchanged lines hidden (view full) ---

192
193 /** Connection failed (version mismatch) */
194 unsigned conn_error : 1;
195
196 /** Backing dev info */
197 struct backing_dev_info bdi;
198};
199
136 struct fuse_init_in_out init_in_out;
137 } misc;
138
139 /** page vector */
140 struct page *pages[FUSE_MAX_PAGES_PER_REQ];
141
142 /** number of pages in vector */
143 unsigned num_pages;

--- 52 unchanged lines hidden (view full) ---

196
197 /** Connection failed (version mismatch) */
198 unsigned conn_error : 1;
199
200 /** Backing dev info */
201 struct backing_dev_info bdi;
202};
203
204struct fuse_getdir_out_i {
205 int fd;
206 void *file; /* Used by kernel only */
207};
208
200static inline struct fuse_conn **get_fuse_conn_super_p(struct super_block *sb)
201{
202 return (struct fuse_conn **) &sb->s_fs_info;
203}
204
205static inline struct fuse_conn *get_fuse_conn_super(struct super_block *sb)
206{
207 return *get_fuse_conn_super_p(sb);

--- 27 unchanged lines hidden (view full) ---

235 * - unused_list, pending, processing lists in fuse_conn
236 * - the unique request ID counter reqctr in fuse_conn
237 * - the sb (super_block) field in fuse_conn
238 * - the file (device file) field in fuse_conn
239 */
240extern spinlock_t fuse_lock;
241
242/**
209static inline struct fuse_conn **get_fuse_conn_super_p(struct super_block *sb)
210{
211 return (struct fuse_conn **) &sb->s_fs_info;
212}
213
214static inline struct fuse_conn *get_fuse_conn_super(struct super_block *sb)
215{
216 return *get_fuse_conn_super_p(sb);

--- 27 unchanged lines hidden (view full) ---

244 * - unused_list, pending, processing lists in fuse_conn
245 * - the unique request ID counter reqctr in fuse_conn
246 * - the sb (super_block) field in fuse_conn
247 * - the file (device file) field in fuse_conn
248 */
249extern spinlock_t fuse_lock;
250
251/**
252 * Get a filled in inode
253 */
254struct inode *fuse_iget(struct super_block *sb, unsigned long nodeid,
255 int generation, struct fuse_attr *attr, int version);
256
257/**
258 * Send FORGET command
259 */
260void fuse_send_forget(struct fuse_conn *fc, struct fuse_req *req,
261 unsigned long nodeid, int version);
262
263/**
264 * Initialise inode operations on regular files and special files
265 */
266void fuse_init_common(struct inode *inode);
267
268/**
269 * Initialise inode and file operations on a directory
270 */
271void fuse_init_dir(struct inode *inode);
272
273/**
274 * Initialise inode operations on a symlink
275 */
276void fuse_init_symlink(struct inode *inode);
277
278/**
279 * Change attributes of an inode
280 */
281void fuse_change_attributes(struct inode *inode, struct fuse_attr *attr);
282
283/**
243 * Check if the connection can be released, and if yes, then free the
244 * connection structure
245 */
246void fuse_release_conn(struct fuse_conn *fc);
247
248/**
249 * Initialize the client device
250 */

--- 51 unchanged lines hidden (view full) ---

302void request_send_noreply(struct fuse_conn *fc, struct fuse_req *req);
303
304/**
305 * Send a request in the background
306 */
307void request_send_background(struct fuse_conn *fc, struct fuse_req *req);
308
309/**
284 * Check if the connection can be released, and if yes, then free the
285 * connection structure
286 */
287void fuse_release_conn(struct fuse_conn *fc);
288
289/**
290 * Initialize the client device
291 */

--- 51 unchanged lines hidden (view full) ---

343void request_send_noreply(struct fuse_conn *fc, struct fuse_req *req);
344
345/**
346 * Send a request in the background
347 */
348void request_send_background(struct fuse_conn *fc, struct fuse_req *req);
349
350/**
351 * Get the attributes of a file
352 */
353int fuse_do_getattr(struct inode *inode);
354
355/**
356 * Invalidate inode attributes
357 */
358void fuse_invalidate_attr(struct inode *inode);
359
360/**
310 * Send the INIT message
311 */
312void fuse_send_init(struct fuse_conn *fc);
361 * Send the INIT message
362 */
363void fuse_send_init(struct fuse_conn *fc);