| @@ -1,142 +1,142 @@ | | | @@ -1,142 +1,142 @@ |
1 | .\" $NetBSD: perfused.8,v 1.6 2011/12/16 10:57:43 manu Exp $ | | 1 | .\" $NetBSD: perfused.8,v 1.7 2011/12/16 12:51:43 wiz Exp $ |
2 | .\" | | 2 | .\" |
3 | .\" Copyright (c) 2010 Emmanuel Dreyfus. All rights reserved. | | 3 | .\" Copyright (c) 2010 Emmanuel Dreyfus. All rights reserved. |
4 | .\" | | 4 | .\" |
5 | .\" Redistribution and use in source and binary forms, with or without | | 5 | .\" Redistribution and use in source and binary forms, with or without |
6 | .\" modification, are permitted provided that the following conditions | | 6 | .\" modification, are permitted provided that the following conditions |
7 | .\" are met: | | 7 | .\" are met: |
8 | .\" 1. Redistributions of source code must retain the above copyright | | 8 | .\" 1. Redistributions of source code must retain the above copyright |
9 | .\" notice, this list of conditions and the following disclaimer. | | 9 | .\" notice, this list of conditions and the following disclaimer. |
10 | .\" 2. Redistributions in binary form must reproduce the above copyright | | 10 | .\" 2. Redistributions in binary form must reproduce the above copyright |
11 | .\" notice, this list of conditions and the following disclaimer in the | | 11 | .\" notice, this list of conditions and the following disclaimer in the |
12 | .\" documentation and/or other materials provided with the distribution. | | 12 | .\" documentation and/or other materials provided with the distribution. |
13 | .\" | | 13 | .\" |
14 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | | 14 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS |
15 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | | 15 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
16 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | | 16 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
17 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | | 17 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS |
18 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | | 18 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
19 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | | 19 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
20 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | | 20 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
21 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | | 21 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
22 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | | 22 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
23 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | | 23 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
24 | .\" POSSIBILITY OF SUCH DAMAGE. | | 24 | .\" POSSIBILITY OF SUCH DAMAGE. |
25 | .\" | | 25 | .\" |
26 | .Dd August 12, 2010 | | 26 | .Dd August 12, 2010 |
27 | .Dt PERFUSED 8 | | 27 | .Dt PERFUSED 8 |
28 | .Os | | 28 | .Os |
29 | .Sh NAME | | 29 | .Sh NAME |
30 | .Nm perfused | | 30 | .Nm perfused |
31 | .Nd PUFFS Enabled Relay to FUSE Daemon | | 31 | .Nd PUFFS Enabled Relay to FUSE Daemon |
32 | .Sh SYNOPSIS | | 32 | .Sh SYNOPSIS |
33 | .Nm | | 33 | .Nm |
34 | .Op Fl fs | | 34 | .Op Fl fs |
35 | .Op Fl d Ar types | | 35 | .Op Fl d Ar types |
36 | .Op Fl i fd | | 36 | .Op Fl i fd |
37 | .Sh DESCRIPTION | | 37 | .Sh DESCRIPTION |
38 | .Nm | | 38 | .Nm |
39 | is a userland daemon implementing the FUSE kernel level API. | | 39 | is a userland daemon implementing the FUSE kernel level API. |
40 | It creates a | | 40 | It creates a |
41 | .Pa /dev/fuse | | 41 | .Pa /dev/fuse |
42 | socket for FUSE file system daemons to connect to. | | 42 | socket for FUSE file system daemons to connect to. |
43 | .Nm | | 43 | .Nm |
44 | takes care of mounting the file system using | | 44 | takes care of mounting the file system using |
45 | .Xr puffs 3 . | | 45 | .Xr puffs 3 . |
46 | .Pp | | 46 | .Pp |
47 | When the kernel sends a | | 47 | When the kernel sends a |
48 | .Xr puffs 3 | | 48 | .Xr puffs 3 |
49 | operation for the mounted file system, | | 49 | operation for the mounted file system, |
50 | .Nm | | 50 | .Nm |
51 | will translate it into a FUSE request, and will send it to the file system | | 51 | will translate it into a FUSE request, and will send it to the file system |
52 | daemon through | | 52 | daemon through |
53 | .Pa /dev/fuse . | | 53 | .Pa /dev/fuse . |
54 | The FUSE reply will be converted back into a | | 54 | The FUSE reply will be converted back into a |
55 | .Xr puffs 3 | | 55 | .Xr puffs 3 |
56 | reply and will be relayed to the kernel. | | 56 | reply and will be relayed to the kernel. |
57 | .Pp | | 57 | .Pp |
58 | FUSE file system daemons must be modified so that they request | | 58 | FUSE file system daemons must be modified so that they request |
59 | .Nm | | 59 | .Nm |
60 | to perform the | | 60 | to perform the |
61 | .Xr mount 2 | | 61 | .Xr mount 2 |
62 | system call instead of doing it on their own. | | 62 | system call instead of doing it on their own. |
63 | This is done by replacing | | 63 | This is done by replacing |
64 | .Xr mount 2 | | 64 | .Xr mount 2 |
65 | and the | | 65 | and the |
66 | .Xr open 2 | | 66 | .Xr open 2 |
67 | calls for | | 67 | calls for |
68 | .Pa /dev/fuse | | 68 | .Pa /dev/fuse |
69 | with | | 69 | with |
70 | .Fn perfuse_mount | | 70 | .Fn perfuse_mount |
71 | and | | 71 | and |
72 | .Fn perfuse_open , | | 72 | .Fn perfuse_open , |
73 | respectively, in their sources. | | 73 | respectively, in their sources. |
74 | .Xr libperfuse 3 | | 74 | .Xr libperfuse 3 |
75 | must be used at link time. | | 75 | must be used at link time. |
76 | Most FUSE file system daemons use | | 76 | Most FUSE file system daemons use |
77 | .Nm libfuse | | 77 | .Nm libfuse |
78 | and will work unmodified, provided the modification is done in | | 78 | and will work unmodified, provided the modification is done in |
79 | .Nm libfuse | | 79 | .Nm libfuse |
80 | itself . | | 80 | itself . |
81 | .Pp | | 81 | .Pp |
82 | The following options are available: | | 82 | The following options are available: |
83 | .Bl -tag -width XdXtypesXX | | 83 | .Bl -tag -width XdXtypesXX |
84 | .It Fl d Ar types | | 84 | .It Fl d Ar types |
85 | Print additional debug information. | | 85 | Print additional debug information. |
86 | .Ar types | | 86 | .Ar types |
87 | is a comma-separated list of information types to print: | | 87 | is a comma-separated list of information types to print: |
88 | .Bl -tag -width indent | | 88 | .Bl -tag -width indent |
89 | .It Ar puffs | | 89 | .It Ar puffs |
90 | Display PUFFS requests and replies. | | 90 | Display PUFFS requests and replies. |
91 | .It Ar fuse | | 91 | .It Ar fuse |
92 | Display FUSE requests and replies. | | 92 | Display FUSE requests and replies. |
93 | .It Ar dump | | 93 | .It Ar dump |
94 | Dump content of FUSE frames. | | 94 | Dump content of FUSE frames. |
95 | .It Ar fh | | 95 | .It Ar fh |
96 | Display file handle activity. | | 96 | Display file handle activity. |
97 | .It Ar reclaim | | 97 | .It Ar reclaim |
98 | Display reclaim activity. | | 98 | Display reclaim activity. |
99 | .It Ar readdir | | 99 | .It Ar readdir |
100 | Display readdir activity. | | 100 | Display readdir activity. |
101 | .It Ar requeue | | 101 | .It Ar requeue |
102 | Display requeue activity. | | 102 | Display requeue activity. |
103 | .It Ar sync | | 103 | .It Ar sync |
104 | Display dirty flags and sync operations. | | 104 | Display dirty flags and sync operations. |
105 | .El | | 105 | .El |
106 | .It Fl f | | 106 | .It Fl f |
107 | Do not fork, but stay in the foreground. | | 107 | Do not fork, but stay in the foreground. |
108 | .It Fl i Ar fd | | 108 | .It Fl i Ar fd |
109 | Do not open | | 109 | Do not open |
110 | .Pa /dev/fuse | | 110 | .Pa /dev/fuse |
111 | but use the socket available from the file descriptor | | 111 | but use the socket available from the file descriptor |
112 | .Ar fd . | | 112 | .Ar fd . |
113 | This is used when | | 113 | This is used when |
114 | .Nm | | 114 | .Nm |
115 | is started from | | 115 | is started from |
116 | .Xr libperfuse 3 . | | 116 | .Xr libperfuse 3 . |
117 | .It Fl s | | 117 | .It Fl s |
118 | Enable debug output only when receiving | | 118 | Enable debug output only when receiving |
119 | .Li SIGINFO . | | 119 | .Li SIGINFO . |
120 | .El | | 120 | .El |
121 | .Sh ERRORS | | 121 | .Sh ERRORS |
122 | The program logs to the syslog daemon as facility | | 122 | The program logs to the syslog daemon as facility |
123 | .Dq daemon . | | 123 | .Dq daemon . |
124 | For detailed debugging use the | | 124 | For detailed debugging use the |
125 | .Fl d | | 125 | .Fl d |
126 | (debug) option. | | 126 | (debug) option. |
127 | .Sh BUGS | | | |
128 | When | | | |
129 | .Nm | | | |
130 | runs in the foreground (using the | | | |
131 | .Fl f | | | |
132 | flag), some processes using the FUSE filesystem will | | | |
133 | sometime hang on | | | |
134 | .Sq uvn_fp2 . | | | |
135 | .Sh SEE ALSO | | 127 | .Sh SEE ALSO |
136 | .Xr mount 2 , | | 128 | .Xr mount 2 , |
137 | .Xr perfuse_mount 3 , | | 129 | .Xr perfuse_mount 3 , |
138 | .Xr puffs 4 | | 130 | .Xr puffs 4 |
139 | .Sh AUTHORS | | 131 | .Sh AUTHORS |
140 | The program was written by | | 132 | The program was written by |
141 | .An Emmanuel Dreyfus | | 133 | .An Emmanuel Dreyfus |
142 | .Aq manu@NetBSD.org . | | 134 | .Aq manu@NetBSD.org . |
| | | 135 | .Sh BUGS |
| | | 136 | When |
| | | 137 | .Nm |
| | | 138 | runs in the foreground (using the |
| | | 139 | .Fl f |
| | | 140 | flag), some processes using the FUSE filesystem will |
| | | 141 | sometime hang on |
| | | 142 | .Sq uvn_fp2 . |