Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 May 2011 11:08:29 GMT
From:      Ilya Putsikau <ilya@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 193903 for review
Message-ID:  <201105291108.p4TB8TmC081377@skunkworks.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@193903?ac=10

Change 193903 by ilya@ilya_triton2011 on 2011/05/29 11:07:24

	Move fuse_init_handler and fuse_send_init to fuse_internal

Affected files ...

.. //depot/projects/soc2011/ilya_fuse/fuse_module/Makefile#9 edit
.. //depot/projects/soc2011/ilya_fuse/fuse_module/fuse_internal.c#1 add
.. //depot/projects/soc2011/ilya_fuse/fuse_module/fuse_internal.h#3 edit
.. //depot/projects/soc2011/ilya_fuse/fuse_module/fuse_vfsops.c#6 edit

Differences ...

==== //depot/projects/soc2011/ilya_fuse/fuse_module/Makefile#9 (text+ko) ====

@@ -13,6 +13,7 @@
        fuse_ipc.h     \
        fuse_file.h \
        fuse_internal.h \
+       fuse_internal.c \
        fuse_io.h      \
        fuse_node.h    \
        vnode_if.h

==== //depot/projects/soc2011/ilya_fuse/fuse_module/fuse_internal.h#3 (text+ko) ====

@@ -6,6 +6,13 @@
 #ifndef _FUSE_INTERNAL_H_
 #define _FUSE_INTERNAL_H_
 
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <sys/vnode.h>
+
+#include "fuse_ipc.h"
+#include "fuse_node.h"
+
 /* access related data */
 
 #define FACCESS_VA_VALID   0x01 /* flag to sign to reuse cached attributes
@@ -28,4 +35,8 @@
 	unsigned facc_flags;
 };
 
+
+int fuse_init_handler(struct fuse_ticket *tick, struct uio *uio);
+void fuse_send_init(struct fuse_data *data, struct thread *td);
+
 #endif /* _FUSE_INTERNAL_H_ */

==== //depot/projects/soc2011/ilya_fuse/fuse_module/fuse_vfsops.c#6 (text+ko) ====

@@ -23,6 +23,7 @@
 #include "fuse.h"
 #include "fuse_node.h"
 #include "fuse_ipc.h"
+#include "fuse_internal.h"
 
 #include <sys/priv.h>
 #include <security/mac/mac_framework.h>
@@ -40,8 +41,6 @@
 #endif
 
 
-static int fuse_init_handler(struct fuse_ticket *tick, struct uio *uio);
-static void fuse_send_init(struct fuse_data *data, struct thread *td);
 static vfs_hash_cmp_t fuse_vnode_bgdrop_cmp;
 
 static vfs_mount_t fuse_mount;
@@ -70,65 +69,6 @@
 
 extern struct vop_vector fuse_vnops;
 
-
-/********************
- *
- * >>> callback handlers for VFS ops
- *
- ********************/
-
-static int
-fuse_init_handler(struct fuse_ticket *tick, struct uio *uio)
-{
-	struct fuse_data *data = tick->tk_data;
-#if FUSE_KERNELABI_GEQ(7, 5)
-	struct fuse_init_out *fiio;
-#else
-	struct fuse_init_in_out *fiio;
-#endif
-	int err = 0;
-
-	if ((err = tick->tk_aw_ohead.error))
-		goto out;
-	if ((err = fticket_pull(tick, uio)))
-		goto out;
-
-	fiio = fticket_resp(tick)->base;
-
-	/* XXX is the following check adequate? */
-	if (fiio->major < 7) {
-		DEBUG2G("userpace version too low\n");
-		err = EPROTONOSUPPORT;
-		goto out;
-	}
-
-	data->fuse_libabi_major = fiio->major;
-	data->fuse_libabi_minor = fiio->minor;
-
-	if (FUSE_KERNELABI_GEQ(7, 5) && fuse_libabi_geq(data, 7, 5)) {
-#if FUSE_KERNELABI_GEQ(7, 5)
-		if (fticket_resp(tick)->len == sizeof(struct fuse_init_out))
-			data->max_write = fiio->max_write;
-		else
-			err = EINVAL;
-#endif
-	} else
-		/* Old fix values */
-		data->max_write = 4096;
-
-out:
-	fuse_ticket_drop(tick);
-	if (err)
-		fdata_kick_set(data);
-
-	mtx_lock(&data->ticket_mtx);
-	data->dataflag |= FSESS_INITED;
-	wakeup(&data->ticketer);
-	mtx_unlock(&data->ticket_mtx);
-
-	return (0);
-}
-
 /******************
  *
  * >>> VFS hash comparators
@@ -186,26 +126,6 @@
  *
  *************/
 
-static __inline void
-fuse_send_init(struct fuse_data *data, struct thread *td)
-{
-#if FUSE_KERNELABI_GEQ(7, 5)
-	struct fuse_init_in *fiii;
-#else
-	struct fuse_init_in_out *fiii;
-#endif
-	struct fuse_dispatcher fdi;
-
-	fdisp_init(&fdi, sizeof(*fiii));
-	fdisp_make(&fdi, data->mp, FUSE_INIT, 0, td, NULL);
-	fiii = fdi.indata;
-	fiii->major = FUSE_KERNEL_VERSION;
-	fiii->minor = FUSE_KERNEL_MINOR_VERSION;
-
-	fuse_insert_callback(fdi.tick, fuse_init_handler);
-	fuse_insert_message(fdi.tick);
-}
-
 /*
  * Mount system call
  */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105291108.p4TB8TmC081377>