diff options
author | Vijay Bellur <vijay@gluster.com> | 2012-04-09 23:11:52 +0530 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2012-04-11 10:25:56 -0700 |
commit | 076830c068fb39bbc3e863c89a4253cbea36357e (patch) | |
tree | 842884d8db9a40d5a53e5171c852a84daa8e0f65 | |
parent | df8e2f53b70f4f49af70df308010dddfe5ca35ec (diff) |
doc: Move outdated documentation to legacy
Change-Id: I0ceba9a993e8b1cdef4ff6a784bfd69c08107d88
BUG: 811311
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Reviewed-on: http://review.gluster.com/3116
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | doc/Makefile.am | 8 | ||||
-rw-r--r-- | doc/examples/legacy/Makefile.am (renamed from doc/examples/Makefile.am) | 2 | ||||
-rw-r--r-- | doc/examples/legacy/README (renamed from doc/examples/README) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/filter.vol (renamed from doc/examples/filter.vol) | 6 | ||||
-rw-r--r-- | doc/examples/legacy/io-cache.vol (renamed from doc/examples/io-cache.vol) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/io-threads.vol (renamed from doc/examples/io-threads.vol) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/posix-locks.vol (renamed from doc/examples/posix-locks.vol) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/protocol-client.vol (renamed from doc/examples/protocol-client.vol) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/protocol-server.vol (renamed from doc/examples/protocol-server.vol) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/read-ahead.vol (renamed from doc/examples/read-ahead.vol) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/replicate.vol (renamed from doc/examples/replicate.vol) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/stripe.vol (renamed from doc/examples/stripe.vol) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/trace.vol (renamed from doc/examples/trace.vol) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/trash.vol (renamed from doc/examples/trash.vol) | 0 | ||||
-rw-r--r-- | doc/examples/legacy/write-behind.vol (renamed from doc/examples/write-behind.vol) | 0 | ||||
-rw-r--r-- | doc/legacy/authentication.txt (renamed from doc/authentication.txt) | 10 | ||||
-rw-r--r-- | doc/legacy/booster.txt (renamed from doc/booster.txt) | 20 | ||||
-rw-r--r-- | doc/legacy/coding-standard.pdf (renamed from doc/coding-standard.pdf) | bin | 68627 -> 68627 bytes | |||
-rw-r--r-- | doc/legacy/coding-standard.tex (renamed from doc/coding-standard.tex) | 32 | ||||
-rw-r--r-- | doc/legacy/errno.list.bsd.txt (renamed from doc/errno.list.bsd.txt) | 0 | ||||
-rw-r--r-- | doc/legacy/errno.list.linux.txt (renamed from doc/errno.list.linux.txt) | 170 | ||||
-rw-r--r-- | doc/legacy/errno.list.macosx.txt (renamed from doc/errno.list.macosx.txt) | 186 | ||||
-rw-r--r-- | doc/legacy/errno.list.solaris.txt (renamed from doc/errno.list.solaris.txt) | 0 | ||||
-rw-r--r-- | doc/legacy/get_put_api_using_xattr.txt (renamed from doc/get_put_api_using_xattr.txt) | 2 | ||||
-rw-r--r-- | doc/legacy/hacker-guide/Makefile.am (renamed from doc/hacker-guide/Makefile.am) | 0 | ||||
-rw-r--r-- | doc/legacy/hacker-guide/adding-fops.txt (renamed from doc/hacker-guide/adding-fops.txt) | 0 | ||||
-rw-r--r-- | doc/legacy/hacker-guide/bdb.txt (renamed from doc/hacker-guide/bdb.txt) | 16 | ||||
-rw-r--r-- | doc/legacy/hacker-guide/call-stub.txt (renamed from doc/hacker-guide/call-stub.txt) | 178 | ||||
-rw-r--r-- | doc/legacy/hacker-guide/hacker-guide.tex (renamed from doc/hacker-guide/hacker-guide.tex) | 20 | ||||
-rw-r--r-- | doc/legacy/hacker-guide/lock-ahead.txt (renamed from doc/hacker-guide/lock-ahead.txt) | 4 | ||||
-rw-r--r-- | doc/legacy/hacker-guide/posix.txt (renamed from doc/hacker-guide/posix.txt) | 14 | ||||
-rw-r--r-- | doc/legacy/hacker-guide/replicate.txt (renamed from doc/hacker-guide/replicate.txt) | 22 | ||||
-rw-r--r-- | doc/legacy/hacker-guide/write-behind.txt (renamed from doc/hacker-guide/write-behind.txt) | 16 | ||||
-rw-r--r-- | doc/legacy/handling-options.txt (renamed from doc/handling-options.txt) | 6 | ||||
-rw-r--r-- | doc/legacy/mac-related-xattrs.txt (renamed from doc/mac-related-xattrs.txt) | 22 | ||||
-rw-r--r-- | doc/legacy/porting_guide.txt (renamed from doc/porting_guide.txt) | 12 | ||||
-rw-r--r-- | doc/legacy/replicate.lyx (renamed from doc/replicate.lyx) | 44 | ||||
-rw-r--r-- | doc/legacy/replicate.pdf (renamed from doc/replicate.pdf) | bin | 109057 -> 109057 bytes | |||
-rw-r--r-- | doc/legacy/rpc-for-glusterfs.changes-done.txt (renamed from doc/rpc-for-glusterfs.changes-done.txt) | 0 | ||||
-rw-r--r-- | doc/legacy/solaris-related-xattrs.txt (renamed from doc/solaris-related-xattrs.txt) | 24 | ||||
-rw-r--r-- | doc/legacy/stat-prefetch-design.txt (renamed from doc/stat-prefetch-design.txt) | 80 | ||||
-rw-r--r-- | doc/legacy/translator-options.txt (renamed from doc/translator-options.txt) | 112 | ||||
-rw-r--r-- | doc/qa/legacy/qa-client.vol (renamed from doc/qa/qa-client.vol) | 36 | ||||
-rw-r--r-- | doc/qa/legacy/qa-high-avail-client.vol (renamed from doc/qa/qa-high-avail-client.vol) | 0 | ||||
-rw-r--r-- | doc/qa/legacy/qa-high-avail-server.vol (renamed from doc/qa/qa-high-avail-server.vol) | 6 | ||||
-rw-r--r-- | doc/qa/legacy/qa-server.vol (renamed from doc/qa/qa-server.vol) | 2 | ||||
-rw-r--r-- | doc/user-guide/legacy/Makefile.am (renamed from doc/user-guide/Makefile.am) | 2 | ||||
-rw-r--r-- | doc/user-guide/legacy/advanced-stripe.odg (renamed from doc/user-guide/advanced-stripe.odg) | bin | 12648 -> 12648 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/advanced-stripe.pdf (renamed from doc/user-guide/advanced-stripe.pdf) | bin | 13382 -> 13382 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/colonO-icon.jpg (renamed from doc/user-guide/colonO-icon.jpg) | bin | 779 -> 779 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/fdl.texi (renamed from doc/user-guide/fdl.texi) | 0 | ||||
-rw-r--r-- | doc/user-guide/legacy/fuse.odg (renamed from doc/user-guide/fuse.odg) | bin | 13190 -> 13190 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/fuse.pdf (renamed from doc/user-guide/fuse.pdf) | bin | 14948 -> 14948 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/ha.odg (renamed from doc/user-guide/ha.odg) | bin | 37290 -> 37290 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/ha.pdf (renamed from doc/user-guide/ha.pdf) | bin | 19403 -> 19403 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/stripe.odg (renamed from doc/user-guide/stripe.odg) | bin | 10188 -> 10188 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/stripe.pdf (renamed from doc/user-guide/stripe.pdf) | bin | 11941 -> 11941 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/unify.odg (renamed from doc/user-guide/unify.odg) | bin | 12955 -> 12955 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/unify.pdf (renamed from doc/user-guide/unify.pdf) | bin | 18969 -> 18969 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/user-guide.info (renamed from doc/user-guide/user-guide.info) | 14 | ||||
-rw-r--r-- | doc/user-guide/legacy/user-guide.pdf (renamed from doc/user-guide/user-guide.pdf) | bin | 353986 -> 353986 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/user-guide.texi (renamed from doc/user-guide/user-guide.texi) | 298 | ||||
-rw-r--r-- | doc/user-guide/legacy/xlator.odg (renamed from doc/user-guide/xlator.odg) | bin | 12169 -> 12169 bytes | |||
-rw-r--r-- | doc/user-guide/legacy/xlator.pdf (renamed from doc/user-guide/xlator.pdf) | bin | 14358 -> 14358 bytes |
65 files changed, 680 insertions, 686 deletions
diff --git a/configure.ac b/configure.ac index 2d3dea10faf..5771ef21c29 100644 --- a/configure.ac +++ b/configure.ac @@ -126,8 +126,6 @@ AC_CONFIG_FILES([Makefile cli/Makefile cli/src/Makefile doc/Makefile - doc/examples/Makefile - doc/hacker-guide/Makefile extras/Makefile extras/init.d/Makefile extras/init.d/glusterd.plist diff --git a/doc/Makefile.am b/doc/Makefile.am index aee63b28947..5eea6618220 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,13 +1,9 @@ EXTRA_DIST = glusterfs.vol.sample glusterfsd.vol.sample glusterfs.8 mount.glusterfs.8\ - porting_guide.txt authentication.txt coding-standard.pdf get_put_api_using_xattr.txt \ - translator-options.txt mac-related-xattrs.txt replicate.pdf glusterd.vol gluster.8 \ - glusterd.8 glusterfsd.8 - -SUBDIRS = examples hacker-guide + glusterd.vol gluster.8 glusterd.8 glusterfsd.8 voldir = $(sysconfdir)/glusterfs vol_DATA = glusterd.vol man8_MANS = glusterfs.8 mount.glusterfs.8 gluster.8 glusterd.8 glusterfsd.8 -CLEANFILES = +CLEANFILES = diff --git a/doc/examples/Makefile.am b/doc/examples/legacy/Makefile.am index af8fe1fd8e0..49c9701efb3 100644 --- a/doc/examples/Makefile.am +++ b/doc/examples/legacy/Makefile.am @@ -5,4 +5,4 @@ docdir = $(datadir)/doc/$(PACKAGE_NAME) Examplesdir = $(docdir)/examples Examples_DATA = $(EXTRA) -CLEANFILES = +CLEANFILES = diff --git a/doc/examples/README b/doc/examples/legacy/README index 73275157160..73275157160 100644 --- a/doc/examples/README +++ b/doc/examples/legacy/README diff --git a/doc/examples/filter.vol b/doc/examples/legacy/filter.vol index ca5c5983779..59bb23ecf2c 100644 --- a/doc/examples/filter.vol +++ b/doc/examples/legacy/filter.vol @@ -8,9 +8,9 @@ end-volume ## In normal clustered storage type, any of the cluster translators can come here. # # Definition of other clients -# +# # Definition of cluster translator (may be unify, afr, or unify over afr) -# +# ### 'Filter' translator is used on client side (or server side according to needs). This traslator makes all the below translators, (or say volumes) as read-only. Hence if one wants a 'read-only' filesystem, using filter as the top most volume will make it really fast as the fops are returned from this level itself. @@ -20,4 +20,4 @@ volume filter-ro # option completely-read-only yes # translate-uid 1-99=0 subvolumes client -end-volume
\ No newline at end of file +end-volume diff --git a/doc/examples/io-cache.vol b/doc/examples/legacy/io-cache.vol index a71745017a2..a71745017a2 100644 --- a/doc/examples/io-cache.vol +++ b/doc/examples/legacy/io-cache.vol diff --git a/doc/examples/io-threads.vol b/doc/examples/legacy/io-threads.vol index 236f5b8b188..236f5b8b188 100644 --- a/doc/examples/io-threads.vol +++ b/doc/examples/legacy/io-threads.vol diff --git a/doc/examples/posix-locks.vol b/doc/examples/legacy/posix-locks.vol index 673afa3f8ae..673afa3f8ae 100644 --- a/doc/examples/posix-locks.vol +++ b/doc/examples/legacy/posix-locks.vol diff --git a/doc/examples/protocol-client.vol b/doc/examples/legacy/protocol-client.vol index c34ef790d0e..c34ef790d0e 100644 --- a/doc/examples/protocol-client.vol +++ b/doc/examples/legacy/protocol-client.vol diff --git a/doc/examples/protocol-server.vol b/doc/examples/legacy/protocol-server.vol index 195e4965782..195e4965782 100644 --- a/doc/examples/protocol-server.vol +++ b/doc/examples/legacy/protocol-server.vol diff --git a/doc/examples/read-ahead.vol b/doc/examples/legacy/read-ahead.vol index 9e4dba55627..9e4dba55627 100644 --- a/doc/examples/read-ahead.vol +++ b/doc/examples/legacy/read-ahead.vol diff --git a/doc/examples/replicate.vol b/doc/examples/legacy/replicate.vol index 10626d46f05..10626d46f05 100644 --- a/doc/examples/replicate.vol +++ b/doc/examples/legacy/replicate.vol diff --git a/doc/examples/stripe.vol b/doc/examples/legacy/stripe.vol index 9524e8198bf..9524e8198bf 100644 --- a/doc/examples/stripe.vol +++ b/doc/examples/legacy/stripe.vol diff --git a/doc/examples/trace.vol b/doc/examples/legacy/trace.vol index 59830f26a9d..59830f26a9d 100644 --- a/doc/examples/trace.vol +++ b/doc/examples/legacy/trace.vol diff --git a/doc/examples/trash.vol b/doc/examples/legacy/trash.vol index 3fcf315af08..3fcf315af08 100644 --- a/doc/examples/trash.vol +++ b/doc/examples/legacy/trash.vol diff --git a/doc/examples/write-behind.vol b/doc/examples/legacy/write-behind.vol index 2b5ed413921..2b5ed413921 100644 --- a/doc/examples/write-behind.vol +++ b/doc/examples/legacy/write-behind.vol diff --git a/doc/authentication.txt b/doc/legacy/authentication.txt index 70aafd93334..73cb21d73ba 100644 --- a/doc/authentication.txt +++ b/doc/legacy/authentication.txt @@ -48,7 +48,7 @@ protocol/client: option remote-subvolume foo-brick * Client is connecting from a.b.c.d - + protocol/server: option auth.addr.foo-brick.allow a.b.c.d,e.f.g.h,i.j.k.l #, other ip addresses from which clients are allowed to connect to foo-brick @@ -79,19 +79,19 @@ * reject only "user shoo from a.b.c.d" protcol/client: option remote-subvolume shoo-brick - + protocol/server: # observe that no "option auth.login.shoo-brick.allow shoo" given # Also other users from a.b.c.d have to be explicitly allowed using auth.login.shoo-brick.allow ... option auth.addr.shoo-brick.allow !a.b.c.d - * reject only "user shoo" from a.b.c.d i.e., user shoo from a.b.c.d has to be rejected. + * reject only "user shoo" from a.b.c.d i.e., user shoo from a.b.c.d has to be rejected. * same as reject only "user shoo from a.b.c.d" above, but rules have to be added whether to allow ip addresses (and users from those ips) other than a.b.c.d **************************************************************************************************** * ip or username/password based authentication - + * allow user foo or clients from a.b.c.d protocol/client: option remote-subvolume foo-brick @@ -104,7 +104,7 @@ * reject user shoo or clients from a.b.c.d protocol/client: option remote-subvolume shoo-brick - + protocol/server: option auth.login.shoo-brick.allow <usernames other than shoo> #for each username mentioned in the above <usernames other than shoo> list, specify password as below diff --git a/doc/booster.txt b/doc/legacy/booster.txt index 684ac8965c4..6f215c63848 100644 --- a/doc/booster.txt +++ b/doc/legacy/booster.txt @@ -1,6 +1,6 @@ Introduction ============ -* booster is a LD_PRELOADable library which boosts read/write performance by bypassing fuse for +* booster is a LD_PRELOADable library which boosts read/write performance by bypassing fuse for read() and write() calls. Requirements @@ -14,29 +14,29 @@ Design * contents of client volume-file. * mount point. -* LD_PRELOADed booster.so maintains an hash table storing mount-points and libglusterfsclient handles - so that handles are reused for files from same mount point. +* LD_PRELOADed booster.so maintains an hash table storing mount-points and libglusterfsclient handles + so that handles are reused for files from same mount point. * it also maintains a fdtable. fdtable maps the fd (integer) returned to application to fd (pointer to fd struct) used by libglusterfsclient. application is returned the same fd as the one returned from libc apis. * During fork, these tables are overwritten to enable creation of fresh glusterfs context in child. - + Working ======= -* application willing to use booster LD_PRELOADs booster.so which is a wrapper library implementing +* application willing to use booster LD_PRELOADs booster.so which is a wrapper library implementing open, read and write. -* application should specify the path to logfile through the environment variable GLFS_BOOSTER_LOGFILE. If +* application should specify the path to logfile through the environment variable GLFS_BOOSTER_LOGFILE. If not specified, logging is done to /dev/stderr. * open call does, * real_open on the file. * fgetxattr(fd). * store the volume-file content got in the dictionary to a temparory file. - * look in the hashtable for the mount-point, if already present get the libglusterfsclient handle from the - hashtable. Otherwise get a new handle from libglusterfsclient (be careful about mount point not present in - the hashtable and multiple glusterfs_inits running simultaneously for the same mount-point there by using + * look in the hashtable for the mount-point, if already present get the libglusterfsclient handle from the + hashtable. Otherwise get a new handle from libglusterfsclient (be careful about mount point not present in + the hashtable and multiple glusterfs_inits running simultaneously for the same mount-point there by using multiple handles for the same mount point). * real_close (fd). * delete temporary volume-volfile. @@ -51,4 +51,4 @@ Working * close call does, * remove the fd from the fdtable. -* other calls use real_calls. +* other calls use real_calls. diff --git a/doc/coding-standard.pdf b/doc/legacy/coding-standard.pdf Binary files differindex bc9cb56202c..bc9cb56202c 100644 --- a/doc/coding-standard.pdf +++ b/doc/legacy/coding-standard.pdf diff --git a/doc/coding-standard.tex b/doc/legacy/coding-standard.tex index 92f799c013f..abaedb69c3c 100644 --- a/doc/coding-standard.tex +++ b/doc/legacy/coding-standard.tex @@ -27,7 +27,7 @@ purpose. The comment should be descriptive without being overly verbose. \textsl{Good}: \begin{verbatim} - DBTYPE access_mode; /* access mode for accessing + DBTYPE access_mode; /* access mode for accessing * the databases, can be * DB_HASH, DB_BTREE * (option access-mode <mode>) @@ -69,7 +69,7 @@ Never use a non-constant expression as the initialization value for a variable. \section*{$\bullet$ Validate all arguments to a function} All pointer arguments to a function must be checked for \texttt{NULL}. -A macro named \texttt{VALIDATE} (in \texttt{common-utils.h}) +A macro named \texttt{VALIDATE} (in \texttt{common-utils.h}) takes one argument, and if it is \texttt{NULL}, writes a log message and jumps to a label called \texttt{err} after setting op\_ret and op\_errno appropriately. It is recommended to use this template. @@ -142,8 +142,8 @@ for success or failure. \begin{verbatim} op_ret = close (_fd); if (op_ret == -1) { - gf_log (this->name, GF_LOG_ERROR, - "close on file %s failed (%s)", real_path, + gf_log (this->name, GF_LOG_ERROR, + "close on file %s failed (%s)", real_path, strerror (errno)); op_errno = errno; goto out; @@ -157,9 +157,9 @@ memory allocation fails, the call should be unwound and an error returned to the user. \section*{$\bullet$ Use result args and reserve the return value to indicate success or failure} -The return value of every functions must indicate success or failure (unless -it is impossible for the function to fail --- e.g., boolean functions). If -the function needs to return additional data, it must be returned using a +The return value of every functions must indicate success or failure (unless +it is impossible for the function to fail --- e.g., boolean functions). If +the function needs to return additional data, it must be returned using a result (pointer) argument. \vspace{2ex} @@ -192,11 +192,11 @@ Unless impossible, use the length-limited versions of the string functions. \end{verbatim} \section*{$\bullet$ No dead or commented code} -There must be no dead code (code to which control can never be passed) or +There must be no dead code (code to which control can never be passed) or commented out code in the codebase. \section*{$\bullet$ Only one unwind and return per function} -There must be only one exit out of a function. \texttt{UNWIND} and return +There must be only one exit out of a function. \texttt{UNWIND} and return should happen at only point in the function. \section*{$\bullet$ Function length or Keep functions small} @@ -305,7 +305,7 @@ documentation. \end{verbatim} \subsection*{Indicating critical sections} -To clearly show regions of code which execute with locks held, use +To clearly show regions of code which execute with locks held, use the following format: \begin{verbatim} @@ -324,7 +324,7 @@ point, \texttt{out}. At that point, the code should detect the error that has occured and do appropriate cleanup. \begin{verbatim} -int32_t +int32_t sample_fop (call_frame_t *frame, xlator_t *this, ...) { char * var1 = NULL; @@ -337,13 +337,13 @@ sample_fop (call_frame_t *frame, xlator_t *this, ...) VALIDATE_OR_GOTO (this, out); /* other validations */ - + dir = opendir (...); if (dir == NULL) { op_errno = errno; - gf_log (this->name, GF_LOG_ERROR, - "opendir failed on %s (%s)", loc->path, + gf_log (this->name, GF_LOG_ERROR, + "opendir failed on %s (%s)", loc->path, strerror (op_errno)); goto out; } @@ -367,8 +367,8 @@ sample_fop (call_frame_t *frame, xlator_t *this, ...) if (dir) { closedir (dir); dir = NULL; - } - + } + if (pfd) { if (pfd->path) FREE (pfd->path); diff --git a/doc/errno.list.bsd.txt b/doc/legacy/errno.list.bsd.txt index 350af25e4ab..350af25e4ab 100644 --- a/doc/errno.list.bsd.txt +++ b/doc/legacy/errno.list.bsd.txt diff --git a/doc/errno.list.linux.txt b/doc/legacy/errno.list.linux.txt index baa50792d4d..cc868644b36 100644 --- a/doc/errno.list.linux.txt +++ b/doc/legacy/errno.list.linux.txt @@ -95,7 +95,7 @@ extern "C" { /** * @defgroup apr_errno Error Codes - * @ingroup APR + * @ingroup APR * @{ */ @@ -110,7 +110,7 @@ typedef int apr_status_t; * @param buf A buffer to hold the error string. * @param bufsize Size of the buffer to hold the string. */ -APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, +APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, apr_size_t bufsize); #if defined(DOXYGEN) @@ -130,7 +130,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * Fold an apr_status_t code back to the native platform defined error. * @param e The apr_status_t folded platform os error code. * @warning macro implementation; the statcode argument may be evaluated - * multiple times. If the statcode was not created by apr_get_os_error + * multiple times. If the statcode was not created by apr_get_os_error * or APR_FROM_OS_ERROR, the results are undefined. */ #define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR) @@ -166,7 +166,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * @warning This is a macro implementation; the statcode argument may be evaluated * multiple times. If the statcode was not created by apr_get_os_error * or APR_FROM_OS_ERROR, the results are undefined. This macro sets - * errno, or calls a WSASetLastError() style function, unfolding + * errno, or calls a WSASetLastError() style function, unfolding * socketcode with APR_TO_OS_ERROR. */ @@ -206,12 +206,12 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_OS_START_CANONERR (APR_OS_START_USERERR \ + (APR_OS_ERRSPACE_SIZE * 10)) /** - * APR_OS_START_EAIERR folds EAI_ error codes from getaddrinfo() into + * APR_OS_START_EAIERR folds EAI_ error codes from getaddrinfo() into * apr_status_t values. */ #define APR_OS_START_EAIERR (APR_OS_START_CANONERR + APR_OS_ERRSPACE_SIZE) /** - * APR_OS_START_SYSERR folds platform-specific system error values into + * APR_OS_START_SYSERR folds platform-specific system error values into * apr_status_t values. */ #define APR_OS_START_SYSERR (APR_OS_START_EAIERR + APR_OS_ERRSPACE_SIZE) @@ -219,13 +219,13 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, /** no error. */ #define APR_SUCCESS 0 -/** +/** * @defgroup APR_Error APR Error Values * <PRE> * <b>APR ERROR VALUES</b> - * APR_ENOSTAT APR was unable to perform a stat on the file + * APR_ENOSTAT APR was unable to perform a stat on the file * APR_ENOPOOL APR was not provided a pool with which to allocate memory - * APR_EBADDATE APR was given an invalid date + * APR_EBADDATE APR was given an invalid date * APR_EINVALSOCK APR was given an invalid socket * APR_ENOPROC APR was not given a process structure * APR_ENOTIME APR was not given a time structure @@ -236,7 +236,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * APR_ENOTHREAD APR was not given a thread structure * APR_ENOTHDKEY APR was not given a thread key structure * APR_ENOSHMAVAIL There is no more shared memory available - * APR_EDSOOPEN APR was unable to open the dso object. For more + * APR_EDSOOPEN APR was unable to open the dso object. For more * information call apr_dso_error(). * APR_EGENERAL General failure (specific information not available) * APR_EBADIP The specified IP address is invalid @@ -256,17 +256,17 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * APR_INCOMPLETE The operation was incomplete although some processing * was performed and the results are partially valid * APR_BADCH Getopt found an option not in the option string - * APR_BADARG Getopt found an option that is missing an argument + * APR_BADARG Getopt found an option that is missing an argument * and an argument was specified in the option string * APR_EOF APR has encountered the end of the file * APR_NOTFOUND APR was unable to find the socket in the poll structure * APR_ANONYMOUS APR is using anonymous shared memory * APR_FILEBASED APR is using a file name as the key to the shared memory * APR_KEYBASED APR is using a shared key as the key to the shared memory - * APR_EINIT Ininitalizer value. If no option has been found, but + * APR_EINIT Ininitalizer value. If no option has been found, but * the status variable requires a value, this should be used - * APR_ENOTIMPL The APR function has not been implemented on this - * platform, either because nobody has gotten to it yet, + * APR_ENOTIMPL The APR function has not been implemented on this + * platform, either because nobody has gotten to it yet, * or the function is impossible on this platform. * APR_EMISMATCH Two passwords do not match. * APR_EABSOLUTE The given path was absolute. @@ -334,7 +334,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_ENOTENOUGHENTROPY (APR_OS_START_ERROR + 28) /** @} */ -/** +/** * @defgroup APR_STATUS_IS Status Value Tests * @warning For any particular error condition, more than one of these tests * may match. This is because platform-specific error codes may not @@ -345,16 +345,16 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * adjust the order of the tests accordingly. * @{ */ -/** - * APR was unable to perform a stat on the file +/** + * APR was unable to perform a stat on the file * @warning always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_ENOSTAT(s) ((s) == APR_ENOSTAT) -/** - * APR was not provided a pool with which to allocate memory +/** + * APR was not provided a pool with which to allocate memory * @warning always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_ENOPOOL(s) ((s) == APR_ENOPOOL) /** APR was given an invalid date */ @@ -386,8 +386,8 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, /** The specified netmask is invalid */ #define APR_STATUS_IS_EBADMASK(s) ((s) == APR_EBADMASK) /* empty slot: +18 */ -/** - * APR was unable to open the dso object. +/** + * APR was unable to open the dso object. * For more information call apr_dso_error(). */ #if defined(WIN32) @@ -425,7 +425,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, /** @} */ -/** +/** * @addtogroup APR_Error * @{ */ @@ -466,7 +466,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, /** @see APR_STATUS_IS_KEYBASED */ #define APR_KEYBASED (APR_OS_START_STATUS + 21) /** @see APR_STATUS_IS_EINIT */ -#define APR_EINIT (APR_OS_START_STATUS + 22) +#define APR_EINIT (APR_OS_START_STATUS + 22) /** @see APR_STATUS_IS_ENOTIMPL */ #define APR_ENOTIMPL (APR_OS_START_STATUS + 23) /** @see APR_STATUS_IS_EMISMATCH */ @@ -475,156 +475,156 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_EBUSY (APR_OS_START_STATUS + 25) /** @} */ -/** +/** * @addtogroup APR_STATUS_IS * @{ */ -/** - * Program is currently executing in the child +/** + * Program is currently executing in the child * @warning * always use this test, as platform-specific variances may meet this * more than one error code */ #define APR_STATUS_IS_INCHILD(s) ((s) == APR_INCHILD) -/** - * Program is currently executing in the parent +/** + * Program is currently executing in the parent * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_INPARENT(s) ((s) == APR_INPARENT) -/** - * The thread is detached +/** + * The thread is detached * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_DETACH(s) ((s) == APR_DETACH) -/** - * The thread is not detached +/** + * The thread is not detached * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_NOTDETACH(s) ((s) == APR_NOTDETACH) -/** +/** * The child has finished executing * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_CHILD_DONE(s) ((s) == APR_CHILD_DONE) -/** +/** * The child has not finished executing * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_CHILD_NOTDONE(s) ((s) == APR_CHILD_NOTDONE) -/** +/** * The operation did not finish before the timeout * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_TIMEUP(s) ((s) == APR_TIMEUP) -/** +/** * The operation was incomplete although some processing was performed * and the results are partially valid. * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_INCOMPLETE(s) ((s) == APR_INCOMPLETE) /* empty slot: +9 */ /* empty slot: +10 */ /* empty slot: +11 */ -/** +/** * Getopt found an option not in the option string * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_BADCH(s) ((s) == APR_BADCH) -/** - * Getopt found an option not in the option string and an argument was +/** + * Getopt found an option not in the option string and an argument was * specified in the option string * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_BADARG(s) ((s) == APR_BADARG) -/** +/** * APR has encountered the end of the file * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_EOF(s) ((s) == APR_EOF) -/** +/** * APR was unable to find the socket in the poll structure * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_NOTFOUND(s) ((s) == APR_NOTFOUND) /* empty slot: +16 */ /* empty slot: +17 */ /* empty slot: +18 */ -/** +/** * APR is using anonymous shared memory * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_ANONYMOUS(s) ((s) == APR_ANONYMOUS) -/** +/** * APR is using a file name as the key to the shared memory * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_FILEBASED(s) ((s) == APR_FILEBASED) -/** +/** * APR is using a shared key as the key to the shared memory * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_KEYBASED(s) ((s) == APR_KEYBASED) -/** - * Ininitalizer value. If no option has been found, but +/** + * Ininitalizer value. If no option has been found, but * the status variable requires a value, this should be used * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_EINIT(s) ((s) == APR_EINIT) -/** - * The APR function has not been implemented on this - * platform, either because nobody has gotten to it yet, +/** + * The APR function has not been implemented on this + * platform, either because nobody has gotten to it yet, * or the function is impossible on this platform. * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_ENOTIMPL(s) ((s) == APR_ENOTIMPL) -/** +/** * Two passwords do not match. * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_EMISMATCH(s) ((s) == APR_EMISMATCH) -/** +/** * The given lock was busy * @warning always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_EBUSY(s) ((s) == APR_EBUSY) /** @} */ -/** +/** * @addtogroup APR_Error APR Error Values * @{ */ @@ -713,8 +713,8 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_ESPIPE (APR_OS_START_CANONERR + 12) #endif -/** - * @see APR_STATUS_IS_EAGAIN +/** + * @see APR_STATUS_IS_EAGAIN * @warning use APR_STATUS_IS_EAGAIN instead of just testing this value */ #ifdef EAGAIN @@ -753,7 +753,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_EINPROGRESS (APR_OS_START_CANONERR + 17) #endif -/** +/** * @see APR_STATUS_IS_ECONNABORTED * @warning use APR_STATUS_IS_ECONNABORTED instead of just testing this value */ @@ -771,7 +771,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_ECONNRESET (APR_OS_START_CANONERR + 19) #endif -/** @see APR_STATUS_IS_ETIMEDOUT +/** @see APR_STATUS_IS_ETIMEDOUT * @deprecated */ #ifdef ETIMEDOUT #define APR_ETIMEDOUT ETIMEDOUT @@ -849,7 +849,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, */ #define APR_OS2_STATUS(e) (APR_FROM_OS_ERROR(e)) -/* These can't sit in a private header, so in spite of the extra size, +/* These can't sit in a private header, so in spite of the extra size, * they need to be made available here. */ #define SOCBASEERR 10000 @@ -946,10 +946,10 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, || (s) == APR_OS_START_SYSERR + SOCECONNRESET) /* XXX deprecated */ #define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT \ - || (s) == APR_OS_START_SYSERR + SOCETIMEDOUT) + || (s) == APR_OS_START_SYSERR + SOCETIMEDOUT) #undef APR_STATUS_IS_TIMEUP #define APR_STATUS_IS_TIMEUP(s) ((s) == APR_TIMEUP \ - || (s) == APR_OS_START_SYSERR + SOCETIMEDOUT) + || (s) == APR_OS_START_SYSERR + SOCETIMEDOUT) #define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH \ || (s) == APR_OS_START_SYSERR + SOCEHOSTUNREACH) #define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH \ @@ -1182,7 +1182,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define apr_get_netos_error() (errno) #define apr_set_netos_error(e) (errno = (e)) -/** +/** * @addtogroup APR_STATUS_IS * @{ */ @@ -1246,15 +1246,15 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, /** operation now in progress */ #define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS) -/** - * Software caused connection abort +/** + * Software caused connection abort * @remark - * EPROTO on certain older kernels really means ECONNABORTED, so we need to + * EPROTO on certain older kernels really means ECONNABORTED, so we need to * ignore it for them. See discussion in new-httpd archives nh.9701 & nh.9603 * - * There is potentially a bug in Solaris 2.x x<6, and other boxes that + * There is potentially a bug in Solaris 2.x x<6, and other boxes that * implement tcp sockets in userland (i.e. on top of STREAMS). On these - * systems, EPROTO can actually result in a fatal loop. See PR#981 for + * systems, EPROTO can actually result in a fatal loop. See PR#981 for * example. It's hard to handle both uses of EPROTO. */ #ifdef EPROTO diff --git a/doc/errno.list.macosx.txt b/doc/legacy/errno.list.macosx.txt index 728753ac793..4954e03d855 100644 --- a/doc/errno.list.macosx.txt +++ b/doc/legacy/errno.list.macosx.txt @@ -34,7 +34,7 @@ extern "C" { /** * @defgroup apr_errno Error Codes - * @ingroup APR + * @ingroup APR * @{ */ @@ -49,7 +49,7 @@ typedef int apr_status_t; * @param buf A buffer to hold the error string. * @param bufsize Size of the buffer to hold the string. */ -APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, +APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, apr_size_t bufsize); #if defined(DOXYGEN) @@ -69,7 +69,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * Fold an apr_status_t code back to the native platform defined error. * @param e The apr_status_t folded platform os error code. * @warning macro implementation; the statcode argument may be evaluated - * multiple times. If the statcode was not created by apr_get_os_error + * multiple times. If the statcode was not created by apr_get_os_error * or APR_FROM_OS_ERROR, the results are undefined. */ #define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR) @@ -105,7 +105,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * @warning This is a macro implementation; the statcode argument may be evaluated * multiple times. If the statcode was not created by apr_get_os_error * or APR_FROM_OS_ERROR, the results are undefined. This macro sets - * errno, or calls a WSASetLastError() style function, unfolding + * errno, or calls a WSASetLastError() style function, unfolding * socketcode with APR_TO_OS_ERROR. */ @@ -145,12 +145,12 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_OS_START_CANONERR (APR_OS_START_USERERR \ + (APR_OS_ERRSPACE_SIZE * 10)) /** - * APR_OS_START_EAIERR folds EAI_ error codes from getaddrinfo() into + * APR_OS_START_EAIERR folds EAI_ error codes from getaddrinfo() into * apr_status_t values. */ #define APR_OS_START_EAIERR (APR_OS_START_CANONERR + APR_OS_ERRSPACE_SIZE) /** - * APR_OS_START_SYSERR folds platform-specific system error values into + * APR_OS_START_SYSERR folds platform-specific system error values into * apr_status_t values. */ #define APR_OS_START_SYSERR (APR_OS_START_EAIERR + APR_OS_ERRSPACE_SIZE) @@ -158,13 +158,13 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, /** no error. */ #define APR_SUCCESS 0 -/** +/** * @defgroup APR_Error APR Error Values * <PRE> * <b>APR ERROR VALUES</b> - * APR_ENOSTAT APR was unable to perform a stat on the file + * APR_ENOSTAT APR was unable to perform a stat on the file * APR_ENOPOOL APR was not provided a pool with which to allocate memory - * APR_EBADDATE APR was given an invalid date + * APR_EBADDATE APR was given an invalid date * APR_EINVALSOCK APR was given an invalid socket * APR_ENOPROC APR was not given a process structure * APR_ENOTIME APR was not given a time structure @@ -175,7 +175,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * APR_ENOTHREAD APR was not given a thread structure * APR_ENOTHDKEY APR was not given a thread key structure * APR_ENOSHMAVAIL There is no more shared memory available - * APR_EDSOOPEN APR was unable to open the dso object. For more + * APR_EDSOOPEN APR was unable to open the dso object. For more * information call apr_dso_error(). * APR_EGENERAL General failure (specific information not available) * APR_EBADIP The specified IP address is invalid @@ -195,17 +195,17 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * APR_INCOMPLETE The operation was incomplete although some processing * was performed and the results are partially valid * APR_BADCH Getopt found an option not in the option string - * APR_BADARG Getopt found an option that is missing an argument + * APR_BADARG Getopt found an option that is missing an argument * and an argument was specified in the option string * APR_EOF APR has encountered the end of the file * APR_NOTFOUND APR was unable to find the socket in the poll structure * APR_ANONYMOUS APR is using anonymous shared memory * APR_FILEBASED APR is using a file name as the key to the shared memory * APR_KEYBASED APR is using a shared key as the key to the shared memory - * APR_EINIT Ininitalizer value. If no option has been found, but + * APR_EINIT Ininitalizer value. If no option has been found, but * the status variable requires a value, this should be used - * APR_ENOTIMPL The APR function has not been implemented on this - * platform, either because nobody has gotten to it yet, + * APR_ENOTIMPL The APR function has not been implemented on this + * platform, either because nobody has gotten to it yet, * or the function is impossible on this platform. * APR_EMISMATCH Two passwords do not match. * APR_EABSOLUTE The given path was absolute. @@ -273,7 +273,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_ENOTENOUGHENTROPY (APR_OS_START_ERROR + 28) /** @} */ -/** +/** * @defgroup APR_STATUS_IS Status Value Tests * @warning For any particular error condition, more than one of these tests * may match. This is because platform-specific error codes may not @@ -284,16 +284,16 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * adjust the order of the tests accordingly. * @{ */ -/** - * APR was unable to perform a stat on the file +/** + * APR was unable to perform a stat on the file * @warning always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_ENOSTAT(s) ((s) == APR_ENOSTAT) -/** - * APR was not provided a pool with which to allocate memory +/** + * APR was not provided a pool with which to allocate memory * @warning always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_ENOPOOL(s) ((s) == APR_ENOPOOL) /** APR was given an invalid date */ @@ -325,8 +325,8 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, /** The specified netmask is invalid */ #define APR_STATUS_IS_EBADMASK(s) ((s) == APR_EBADMASK) /* empty slot: +18 */ -/** - * APR was unable to open the dso object. +/** + * APR was unable to open the dso object. * For more information call apr_dso_error(). */ #if defined(WIN32) @@ -364,7 +364,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, /** @} */ -/** +/** * @addtogroup APR_Error * @{ */ @@ -405,7 +405,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, /** @see APR_STATUS_IS_KEYBASED */ #define APR_KEYBASED (APR_OS_START_STATUS + 21) /** @see APR_STATUS_IS_EINIT */ -#define APR_EINIT (APR_OS_START_STATUS + 22) +#define APR_EINIT (APR_OS_START_STATUS + 22) /** @see APR_STATUS_IS_ENOTIMPL */ #define APR_ENOTIMPL (APR_OS_START_STATUS + 23) /** @see APR_STATUS_IS_EMISMATCH */ @@ -414,156 +414,156 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_EBUSY (APR_OS_START_STATUS + 25) /** @} */ -/** +/** * @addtogroup APR_STATUS_IS * @{ */ -/** - * Program is currently executing in the child +/** + * Program is currently executing in the child * @warning * always use this test, as platform-specific variances may meet this * more than one error code */ #define APR_STATUS_IS_INCHILD(s) ((s) == APR_INCHILD) -/** - * Program is currently executing in the parent +/** + * Program is currently executing in the parent * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_INPARENT(s) ((s) == APR_INPARENT) -/** - * The thread is detached +/** + * The thread is detached * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_DETACH(s) ((s) == APR_DETACH) -/** - * The thread is not detached +/** + * The thread is not detached * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_NOTDETACH(s) ((s) == APR_NOTDETACH) -/** +/** * The child has finished executing * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_CHILD_DONE(s) ((s) == APR_CHILD_DONE) -/** +/** * The child has not finished executing * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_CHILD_NOTDONE(s) ((s) == APR_CHILD_NOTDONE) -/** +/** * The operation did not finish before the timeout * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_TIMEUP(s) ((s) == APR_TIMEUP) -/** +/** * The operation was incomplete although some processing was performed * and the results are partially valid. * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_INCOMPLETE(s) ((s) == APR_INCOMPLETE) /* empty slot: +9 */ /* empty slot: +10 */ /* empty slot: +11 */ -/** +/** * Getopt found an option not in the option string * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_BADCH(s) ((s) == APR_BADCH) -/** - * Getopt found an option not in the option string and an argument was +/** + * Getopt found an option not in the option string and an argument was * specified in the option string * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_BADARG(s) ((s) == APR_BADARG) -/** +/** * APR has encountered the end of the file * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_EOF(s) ((s) == APR_EOF) -/** +/** * APR was unable to find the socket in the poll structure * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_NOTFOUND(s) ((s) == APR_NOTFOUND) /* empty slot: +16 */ /* empty slot: +17 */ /* empty slot: +18 */ -/** +/** * APR is using anonymous shared memory * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_ANONYMOUS(s) ((s) == APR_ANONYMOUS) -/** +/** * APR is using a file name as the key to the shared memory * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_FILEBASED(s) ((s) == APR_FILEBASED) -/** +/** * APR is using a shared key as the key to the shared memory * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_KEYBASED(s) ((s) == APR_KEYBASED) -/** - * Ininitalizer value. If no option has been found, but +/** + * Ininitalizer value. If no option has been found, but * the status variable requires a value, this should be used * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_EINIT(s) ((s) == APR_EINIT) -/** - * The APR function has not been implemented on this - * platform, either because nobody has gotten to it yet, +/** + * The APR function has not been implemented on this + * platform, either because nobody has gotten to it yet, * or the function is impossible on this platform. * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_ENOTIMPL(s) ((s) == APR_ENOTIMPL) -/** +/** * Two passwords do not match. * @warning * always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_EMISMATCH(s) ((s) == APR_EMISMATCH) -/** +/** * The given lock was busy * @warning always use this test, as platform-specific variances may meet this - * more than one error code + * more than one error code */ #define APR_STATUS_IS_EBUSY(s) ((s) == APR_EBUSY) /** @} */ -/** +/** * @addtogroup APR_Error APR Error Values * @{ */ @@ -652,8 +652,8 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_ESPIPE (APR_OS_START_CANONERR + 12) #endif -/** - * @see APR_STATUS_IS_EAGAIN +/** + * @see APR_STATUS_IS_EAGAIN * @warning use APR_STATUS_IS_EAGAIN instead of just testing this value */ #ifdef EAGAIN @@ -692,7 +692,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_EINPROGRESS (APR_OS_START_CANONERR + 17) #endif -/** +/** * @see APR_STATUS_IS_ECONNABORTED * @warning use APR_STATUS_IS_ECONNABORTED instead of just testing this value */ @@ -710,7 +710,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define APR_ECONNRESET (APR_OS_START_CANONERR + 19) #endif -/** @see APR_STATUS_IS_ETIMEDOUT +/** @see APR_STATUS_IS_ETIMEDOUT * @deprecated */ #ifdef ETIMEDOUT #define APR_ETIMEDOUT ETIMEDOUT @@ -788,7 +788,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, */ #define APR_OS2_STATUS(e) (APR_FROM_OS_ERROR(e)) -/* These can't sit in a private header, so in spite of the extra size, +/* These can't sit in a private header, so in spite of the extra size, * they need to be made available here. */ #define SOCBASEERR 10000 @@ -885,10 +885,10 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, || (s) == APR_OS_START_SYSERR + SOCECONNRESET) /* XXX deprecated */ #define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT \ - || (s) == APR_OS_START_SYSERR + SOCETIMEDOUT) + || (s) == APR_OS_START_SYSERR + SOCETIMEDOUT) #undef APR_STATUS_IS_TIMEUP #define APR_STATUS_IS_TIMEUP(s) ((s) == APR_TIMEUP \ - || (s) == APR_OS_START_SYSERR + SOCETIMEDOUT) + || (s) == APR_OS_START_SYSERR + SOCETIMEDOUT) #define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH \ || (s) == APR_OS_START_SYSERR + SOCEHOSTUNREACH) #define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH \ @@ -1121,7 +1121,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, #define apr_get_netos_error() (errno) #define apr_set_netos_error(e) (errno = (e)) -/** +/** * @addtogroup APR_STATUS_IS * @{ */ @@ -1185,15 +1185,15 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, /** operation now in progress */ #define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS) -/** - * Software caused connection abort +/** + * Software caused connection abort * @remark - * EPROTO on certain older kernels really means ECONNABORTED, so we need to + * EPROTO on certain older kernels really means ECONNABORTED, so we need to * ignore it for them. See discussion in new-httpd archives nh.9701 & nh.9603 * - * There is potentially a bug in Solaris 2.x x<6, and other boxes that + * There is potentially a bug in Solaris 2.x x<6, and other boxes that * implement tcp sockets in userland (i.e. on top of STREAMS). On these - * systems, EPROTO can actually result in a fatal loop. See PR#981 for + * systems, EPROTO can actually result in a fatal loop. See PR#981 for * example. It's hard to handle both uses of EPROTO. */ #ifdef EPROTO @@ -1236,14 +1236,14 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -1251,7 +1251,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_LICENSE_HEADER_END@ */ #include <sys/errno.h> @@ -1261,7 +1261,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ - * + * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in @@ -1270,10 +1270,10 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * unlawful or unlicensed copies of an Apple operating system, or to * circumvent, violate, or enable the circumvention or violation of, any * terms of an Apple operating system software license agreement. - * + * * Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this file. - * + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, @@ -1281,7 +1281,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. - * + * * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ @@ -1484,7 +1484,7 @@ __END_DECLS #define ECANCELED 89 /* Operation canceled */ #define EIDRM 90 /* Identifier removed */ -#define ENOMSG 91 /* No message of desired type */ +#define ENOMSG 91 /* No message of desired type */ #define EILSEQ 92 /* Illegal byte sequence */ #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) #define ENOATTR 93 /* Attribute not found */ diff --git a/doc/errno.list.solaris.txt b/doc/legacy/errno.list.solaris.txt index 23601e9d374..23601e9d374 100644 --- a/doc/errno.list.solaris.txt +++ b/doc/legacy/errno.list.solaris.txt diff --git a/doc/get_put_api_using_xattr.txt b/doc/legacy/get_put_api_using_xattr.txt index 58951f5bf4f..243f9f1aec2 100644 --- a/doc/get_put_api_using_xattr.txt +++ b/doc/legacy/get_put_api_using_xattr.txt @@ -16,7 +16,7 @@ internals: * posix handling setxattr/getxattr - setxattr posix setxattr does a open with O_CREAT|O_TRUNC on the <path>/<name>, writes value of the setxattr as data into the file and closes the file. when data is null, posix setxattr avoids doing write. file is closed after write. - + - getxattr posix getxattr does open with O_RDONLY on the <path>/<name>, reads the complete content of the file. file is closed after read. diff --git a/doc/hacker-guide/Makefile.am b/doc/legacy/hacker-guide/Makefile.am index 65c92ac235e..65c92ac235e 100644 --- a/doc/hacker-guide/Makefile.am +++ b/doc/legacy/hacker-guide/Makefile.am diff --git a/doc/hacker-guide/adding-fops.txt b/doc/legacy/hacker-guide/adding-fops.txt index e70dbbdc829..e70dbbdc829 100644 --- a/doc/hacker-guide/adding-fops.txt +++ b/doc/legacy/hacker-guide/adding-fops.txt diff --git a/doc/hacker-guide/bdb.txt b/doc/legacy/hacker-guide/bdb.txt index fd0bd365206..1a80be813f6 100644 --- a/doc/hacker-guide/bdb.txt +++ b/doc/legacy/hacker-guide/bdb.txt @@ -21,24 +21,24 @@ as key/value pair inside the glusterfs_storage.db. * internal data cache --------------------- - db does not provide a way to find out the size of the value corresponding to a key. -so, bdb makes DB->get() call for key and takes the length of the value returned. + db does not provide a way to find out the size of the value corresponding to a key. +so, bdb makes DB->get() call for key and takes the length of the value returned. since DB->get() also returns file contents for key, bdb maintains an internal cache and stores the file contents in the cache. every directory maintains a seperate cache. - + * inode number transformation ----------------------------- - bdb allocates a inode number to each file and directory on its own. bdb maintains a + bdb allocates a inode number to each file and directory on its own. bdb maintains a global counter and increments it after allocating inode number for each file (regular, symlink or directory). NOTE: bdb does not guarantee persistent inode numbers. * checkpoint thread ------------------- - bdb creates a checkpoint thread at the time of init(). checkpoint thread does a -periodic checkpoint on the DB_ENV. checkpoint is the mechanism, provided by db, to + bdb creates a checkpoint thread at the time of init(). checkpoint thread does a +periodic checkpoint on the DB_ENV. checkpoint is the mechanism, provided by db, to forcefully commit the logged transactions to the storage. NOTES ABOUT FOPS: @@ -48,7 +48,7 @@ lookup() - 1> do lstat() on the path, if lstat fails, we assume that the file being looked up is either a regular file or doesn't exist. 2> lookup in the DB of parent directory for key corresponding to path. if key exists, - return key, with. + return key, with. NOTE: 'struct stat' stat()ed from DB file is used as a container for 'struct stat' of the regular file. st_ino, st_size, st_blocks are updated with file's values. @@ -58,7 +58,7 @@ readv() - writev(): 1> flush any cached content of this file. - 2> do a DB->put(), with DB_DBT_PARTIAL flag. + 2> do a DB->put(), with DB_DBT_PARTIAL flag. NOTE: DB_DBT_PARTIAL is used to do partial update of a value in DB. readdir(): diff --git a/doc/hacker-guide/call-stub.txt b/doc/legacy/hacker-guide/call-stub.txt index bca1579b22d..021037a3512 100644 --- a/doc/hacker-guide/call-stub.txt +++ b/doc/legacy/hacker-guide/call-stub.txt @@ -2,8 +2,8 @@ creating a call stub and pausing a call --------------------------------------- libglusterfs provides seperate API to pause each of the fop. parameters to each API is @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). - NOTE: @fn should exactly take the same type and number of parameters that +@fn - procedure to call during call_resume(). + NOTE: @fn should exactly take the same type and number of parameters that the corresponding regular fop takes. rest will be the regular parameters to corresponding fop. @@ -17,7 +17,7 @@ specific parameters. here is the list of stub creation APIs for xlator fops. @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -30,7 +30,7 @@ fop_lookup_stub (call_frame_t *frame, int32_t need_xattr); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -41,7 +41,7 @@ fop_stat_stub (call_frame_t *frame, loc_t *loc); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to lk fop. NOTE: @fd is stored with a fd_ref(). call_stub_t * @@ -50,7 +50,7 @@ fop_fstat_stub (call_frame_t *frame, fd_t *fd); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be copied to a different location. @@ -62,7 +62,7 @@ fop_chmod_stub (call_frame_t *frame, mode_t mode); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to lk fop. NOTE: @fd is stored with a fd_ref(). @mode - mode parameter for fchmod fop. @@ -73,7 +73,7 @@ fop_fchmod_stub (call_frame_t *frame, mode_t mode); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be copied to a different location. @@ -87,7 +87,7 @@ fop_chown_stub (call_frame_t *frame, gid_t gid); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to lk fop. NOTE: @fd is stored with a fd_ref(). @uid - uid parameter to fchown. @@ -100,7 +100,7 @@ fop_fchown_stub (call_frame_t *frame, gid_t gid); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -113,7 +113,7 @@ fop_truncate_stub (call_frame_t *frame, off_t off); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to lk fop. NOTE: @fd is stored with a fd_ref(). @off - offset parameter to ftruncate fop. @@ -124,7 +124,7 @@ fop_ftruncate_stub (call_frame_t *frame, off_t off); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -137,7 +137,7 @@ fop_utimens_stub (call_frame_t *frame, struct timespec tv[2]); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -150,7 +150,7 @@ fop_access_stub (call_frame_t *frame, int32_t mask); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -163,7 +163,7 @@ fop_readlink_stub (call_frame_t *frame, size_t size); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -178,7 +178,7 @@ fop_mknod_stub (call_frame_t *frame, dev_t rdev); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -191,7 +191,7 @@ fop_mkdir_stub (call_frame_t *frame, mode_t mode); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -202,7 +202,7 @@ fop_unlink_stub (call_frame_t *frame, loc_t *loc); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -213,7 +213,7 @@ fop_rmdir_stub (call_frame_t *frame, loc_t *loc); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @linkname - linkname parameter to symlink fop. @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @@ -226,10 +226,10 @@ fop_symlink_stub (call_frame_t *frame, loc_t *loc); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @oldloc - pointer to location structure. - NOTE: @oldloc will be copied to a different location, with inode_ref() to - @oldloc->inode and @oldloc->parent, if not NULL. also @oldloc->path will + NOTE: @oldloc will be copied to a different location, with inode_ref() to + @oldloc->inode and @oldloc->parent, if not NULL. also @oldloc->path will be copied to a different location, if not NULL. @newloc - pointer to location structure. NOTE: @newloc will be copied to a different location, with inode_ref() to @@ -242,7 +242,7 @@ fop_rename_stub (call_frame_t *frame, loc_t *newloc); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -255,7 +255,7 @@ fop_link_stub (call_frame_t *frame, const char *newpath); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -272,7 +272,7 @@ fop_create_stub (call_frame_t *frame, mode_t mode, fd_t *fd); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @flags - flags parameter to open fop. @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @@ -286,7 +286,7 @@ fop_open_stub (call_frame_t *frame, fd_t *fd); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to lk fop. NOTE: @fd is stored with a fd_ref(). @size - size parameter to readv fop. @@ -299,10 +299,10 @@ fop_readv_stub (call_frame_t *frame, off_t off); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to lk fop. NOTE: @fd is stored with a fd_ref(). -@vector - vector parameter to writev fop. +@vector - vector parameter to writev fop. NOTE: @vector is iov_dup()ed while creating stub. and frame->root->req_refs dictionary is dict_ref()ed. @count - count parameter to writev fop. @@ -316,7 +316,7 @@ fop_writev_stub (call_frame_t *frame, off_t off); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to flush fop. NOTE: @fd is stored with a fd_ref(). call_stub_t * @@ -326,7 +326,7 @@ fop_flush_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to lk fop. NOTE: @fd is stored with a fd_ref(). @datasync - datasync parameter to fsync fop. @@ -337,7 +337,7 @@ fop_fsync_stub (call_frame_t *frame, int32_t datasync); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be copied to a different location. @@ -346,11 +346,11 @@ fop_fsync_stub (call_frame_t *frame, call_stub_t * fop_opendir_stub (call_frame_t *frame, fop_opendir_t fn, - loc_t *loc, + loc_t *loc, fd_t *fd); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to getdents fop. NOTE: @fd is stored with a fd_ref(). @size - size parameter to getdents fop. @@ -365,7 +365,7 @@ fop_getdents_stub (call_frame_t *frame, int32_t flag); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to setdents fop. NOTE: @fd is stored with a fd_ref(). @flags - flags parameter to setdents fop. @@ -379,7 +379,7 @@ fop_setdents_stub (call_frame_t *frame, int32_t count); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to setdents fop. NOTE: @fd is stored with a fd_ref(). @datasync - datasync parameter to fsyncdir fop. @@ -390,7 +390,7 @@ fop_fsyncdir_stub (call_frame_t *frame, int32_t datasync); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -401,9 +401,9 @@ fop_statfs_stub (call_frame_t *frame, loc_t *loc); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. - NOTE: @loc will be copied to a different location, with inode_ref() to + NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be copied to a different location. @dict - dict parameter to setxattr fop. @@ -416,7 +416,7 @@ fop_setxattr_stub (call_frame_t *frame, int32_t flags); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -429,7 +429,7 @@ fop_getxattr_stub (call_frame_t *frame, const char *name); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -443,7 +443,7 @@ fop_removexattr_stub (call_frame_t *frame, const char *name); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to lk fop. NOTE: @fd is stored with a fd_ref(). @cmd - command parameter to lk fop. @@ -457,13 +457,13 @@ fop_lk_stub (call_frame_t *frame, struct flock *lock); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - fd parameter to gf_lk fop. NOTE: @fd is fd_ref()ed while creating stub, if not NULL. @cmd - cmd parameter to gf_lk fop. @lock - lock paramater to gf_lk fop. NOTE: @lock is copied to a different memory location while creating - stub. + stub. call_stub_t * fop_gf_lk_stub (call_frame_t *frame, fop_gf_lk_t fn, @@ -472,7 +472,7 @@ fop_gf_lk_stub (call_frame_t *frame, struct flock *lock); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @fd - file descriptor parameter to readdir fop. NOTE: @fd is stored with a fd_ref(). @size - size parameter to readdir fop. @@ -485,7 +485,7 @@ fop_readdir_stub (call_frame_t *frame, off_t off); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @loc - pointer to location structure. NOTE: @loc will be copied to a different location, with inode_ref() to @loc->inode and @loc->parent, if not NULL. also @loc->path will be @@ -498,7 +498,7 @@ fop_checksum_stub (call_frame_t *frame, int32_t flags); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @inode - inode parameter to @fn. @@ -516,7 +516,7 @@ fop_lookup_cbk_stub (call_frame_t *frame, struct stat *buf, dict_t *dict); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -529,7 +529,7 @@ fop_stat_cbk_stub (call_frame_t *frame, struct stat *buf); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -542,7 +542,7 @@ fop_fstat_cbk_stub (call_frame_t *frame, struct stat *buf); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -555,7 +555,7 @@ fop_chmod_cbk_stub (call_frame_t *frame, struct stat *buf); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -568,7 +568,7 @@ fop_fchmod_cbk_stub (call_frame_t *frame, struct stat *buf); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -582,7 +582,7 @@ fop_chown_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -596,7 +596,7 @@ fop_fchown_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -610,7 +610,7 @@ fop_truncate_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -624,7 +624,7 @@ fop_ftruncate_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -638,7 +638,7 @@ fop_utimens_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. call_stub_t * @@ -649,7 +649,7 @@ fop_access_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @path - path parameter to @fn. @@ -663,7 +663,7 @@ fop_readlink_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @inode - inode parameter to @fn. @@ -680,7 +680,7 @@ fop_mknod_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @inode - inode parameter to @fn. @@ -697,7 +697,7 @@ fop_mkdir_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. call_stub_t * @@ -708,7 +708,7 @@ fop_unlink_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. call_stub_t * @@ -719,7 +719,7 @@ fop_rmdir_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @inode - inode parameter to @fn. @@ -736,7 +736,7 @@ fop_symlink_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -750,7 +750,7 @@ fop_rename_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @inode - inode parameter to @fn. @@ -766,7 +766,7 @@ fop_link_cbk_stub (call_frame_t *frame, struct stat *buf); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @fd - fd parameter to @fn. @@ -786,7 +786,7 @@ fop_create_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @fd - fd parameter to @fn. @@ -800,10 +800,10 @@ fop_open_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. -@vector - vector parameter to @fn. +@vector - vector parameter to @fn. NOTE: @vector is copied to a different memory location, if not NULL. also frame->root->rsp_refs is dict_ref()ed. @stbuf - stbuf parameter to @fn. @@ -819,7 +819,7 @@ fop_readv_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @stbuf - stbuf parameter to @fn. @@ -833,7 +833,7 @@ fop_writev_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. call_stub_t * @@ -843,7 +843,7 @@ fop_flush_cbk_stub (call_frame_t *frame, int32_t op_errno); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. call_stub_t * @@ -854,7 +854,7 @@ fop_fsync_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @fd - fd parameter to @fn. @@ -868,7 +868,7 @@ fop_opendir_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @entries - entries parameter to @fn. @@ -883,7 +883,7 @@ fop_getdents_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. call_stub_t * @@ -893,7 +893,7 @@ fop_setdents_cbk_stub (call_frame_t *frame, int32_t op_errno); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. call_stub_t * @@ -904,7 +904,7 @@ fop_fsyncdir_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @buf - buf parameter to @fn. @@ -918,7 +918,7 @@ fop_statfs_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. call_stub_t * @@ -929,7 +929,7 @@ fop_setxattr_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @value - value dictionary parameter to @fn. @@ -943,7 +943,7 @@ fop_getxattr_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. call_stub_t * @@ -954,12 +954,12 @@ fop_removexattr_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @lock - lock parameter to @fn. NOTE: @lock is copied to a different memory location while creating - stub. + stub. call_stub_t * fop_lk_cbk_stub (call_frame_t *frame, fop_lk_cbk_t fn, @@ -968,12 +968,12 @@ fop_lk_cbk_stub (call_frame_t *frame, struct flock *lock); @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @lock - lock parameter to @fn. NOTE: @lock is copied to a different memory location while creating - stub. + stub. call_stub_t * fop_gf_lk_cbk_stub (call_frame_t *frame, fop_gf_lk_cbk_t fn, @@ -983,7 +983,7 @@ fop_gf_lk_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @entries - entries parameter to @fn. @@ -996,14 +996,14 @@ fop_readdir_cbk_stub (call_frame_t *frame, @frame - call frame which has to be used to resume the call at call_resume(). -@fn - procedure to call during call_resume(). +@fn - procedure to call during call_resume(). @op_ret - op_ret parameter to @fn. @op_errno - op_errno parameter to @fn. @file_checksum - file_checksum parameter to @fn. - NOTE: file_checksum will be copied to a different memory location + NOTE: file_checksum will be copied to a different memory location while creating stub. @dir_checksum - dir_checksum parameter to @fn. - NOTE: file_checksum will be copied to a different memory location + NOTE: file_checksum will be copied to a different memory location while creating stub. call_stub_t * fop_checksum_cbk_stub (call_frame_t *frame, @@ -1025,9 +1025,9 @@ resuming a call: in stub->args.<operation>.<fd_t-or-inode_t-or-dict_t>. so, if any fd_t, dict_t or inode_t pointers are assigned at stub->args.<operation>.<fd_t-or-inode_t-or-dict_t> after fop_<operation>_stub() call, they must be <fd_t-or-inode_t-or-dict_t>_ref()ed. - + call_resume does not STACK_DESTROY() for any fop. - + if stub->fn is NULL, call_resume does STACK_WIND() or STACK_UNWIND() using the stub->frame. return - call resume fails only if stub is NULL. call resume fails with errno set to EINVAL. diff --git a/doc/hacker-guide/hacker-guide.tex b/doc/legacy/hacker-guide/hacker-guide.tex index c2d7255d7df..11101e7a87a 100644 --- a/doc/hacker-guide/hacker-guide.tex +++ b/doc/legacy/hacker-guide/hacker-guide.tex @@ -31,7 +31,7 @@ most part. \chapter{Major components} \section{libglusterfs} -\texttt{libglusterfs} contains supporting code used by all the other components. +\texttt{libglusterfs} contains supporting code used by all the other components. The important files here are: \texttt{dict.c}: This is an implementation of a serializable dictionary type. It is @@ -165,8 +165,8 @@ First we include the requisite headers. #include "logging.h" /* - * This is a rot13 ``encryption'' xlator. It rot13's data when - * writing to disk and rot13's it back when reading it. + * This is a rot13 ``encryption'' xlator. It rot13's data when + * writing to disk and rot13's it back when reading it. * This xlator is meant as an example, not for production * use ;) (hence no error-checking) */ @@ -178,7 +178,7 @@ letters. Any other byte is passed through as it is. \begin{verbatim} /* We only handle lower case letters for simplicity */ -static void +static void rot13 (char *buf, int len) { int i; @@ -252,12 +252,12 @@ rot13_writev (call_frame_t *frame, xlator_t *this, dict_t *ctx, struct iovec *vector, - int32_t count, + int32_t count, off_t offset) { rot13_iovec (vector, count); - STACK_WIND (frame, + STACK_WIND (frame, rot13_writev_cbk, FIRST_CHILD (this), FIRST_CHILD (this)->fops->writev, @@ -267,9 +267,9 @@ rot13_writev (call_frame_t *frame, \end{verbatim} -Every xlator must define two functions and two external symbols. The functions are +Every xlator must define two functions and two external symbols. The functions are \texttt{init} and \texttt{fini}, and the symbols are \texttt{fops} and \texttt{mops}. -The \texttt{init} function is called when the xlator is loaded by GlusterFS, and +The \texttt{init} function is called when the xlator is loaded by GlusterFS, and contains code for the xlator to initialize itself. Note that if an xlator is present multiple times in the spec tree, the \texttt{init} function will be called each time the xlator is loaded. @@ -279,7 +279,7 @@ int32_t init (xlator_t *this) { if (!this->children) { - gf_log ("rot13", GF_LOG_ERROR, + gf_log ("rot13", GF_LOG_ERROR, "FATAL: rot13 should have exactly one child"); return -1; } @@ -291,7 +291,7 @@ init (xlator_t *this) \begin{verbatim} -void +void fini (xlator_t *this) { return; diff --git a/doc/hacker-guide/lock-ahead.txt b/doc/legacy/hacker-guide/lock-ahead.txt index 63392b7fa2c..70aa452d3de 100644 --- a/doc/hacker-guide/lock-ahead.txt +++ b/doc/legacy/hacker-guide/lock-ahead.txt @@ -9,7 +9,7 @@ further locks will be requested within the same universal set. So, for example, when cluster/replicate locks a region before writing to it, lock-ahead would instead lock the entire file. -On further writes, lock-ahead can immediately return success for +On further writes, lock-ahead can immediately return success for the lock requests, since the entire file has been previously locked. To avoid starvation of other clients/mountpoints, we employ a @@ -50,7 +50,7 @@ lock: send lock-notify fop hold universal lock and return (set inode context, add subset to it, save loc_t or fd) - + if this fails: forward the lock request diff --git a/doc/hacker-guide/posix.txt b/doc/legacy/hacker-guide/posix.txt index d0132abfedc..7958af2ea7d 100644 --- a/doc/hacker-guide/posix.txt +++ b/doc/legacy/hacker-guide/posix.txt @@ -4,11 +4,11 @@ - SET_FS_ID - This is so that all filesystem checks are done with the user's + This is so that all filesystem checks are done with the user's uid/gid and not GlusterFS's uid/gid. - MAKE_REAL_PATH - + This macro concatenates the base directory of the posix volume ('option directory') with the given path. @@ -18,8 +18,8 @@ the file's create time, the file's contents, and the version number of the file. - This is a hack to increase small file performance. If an application - wants to read a small file, it can finish its job with just a lookup + This is a hack to increase small file performance. If an application + wants to read a small file, it can finish its job with just a lookup call instead of a lookup followed by read. - getdents/setdents @@ -27,7 +27,7 @@ These are used by unify to set and get directory entries. - ALIGN_BUF - + Macro to align an address to a page boundary (4K). - priv->export_statfs @@ -42,7 +42,7 @@ - xattrop - This fop is used by replicate to set version numbers on files. + This fop is used by replicate to set version numbers on files. - getxattr/setxattr hack to read/write files @@ -52,7 +52,7 @@ the value as the entire content of the file. - posix_checksum - + This calculates a simple XOR checksum on all entry names in a directory that is used by unify to compare directory contents. diff --git a/doc/hacker-guide/replicate.txt b/doc/legacy/hacker-guide/replicate.txt index fd1ef2747f0..133c72afa91 100644 --- a/doc/hacker-guide/replicate.txt +++ b/doc/legacy/hacker-guide/replicate.txt @@ -5,7 +5,7 @@ Before understanding replicate, one must understand two internal FOPs: GF_FILE_LK: - This is exactly like fcntl(2) locking, except the locks are in a + This is exactly like fcntl(2) locking, except the locks are in a separate domain from locks held by applications. GF_DIR_LK (loc_t *loc, char *basename): @@ -17,7 +17,7 @@ GF_DIR_LK (loc_t *loc, char *basename): If one wishes to lock *all* the names under a particular directory, supply the basename argument as NULL. - The locks can either be read locks or write locks; consult the + The locks can either be read locks or write locks; consult the function prototype for more details. Both these operations are implemented by the features/locks (earlier @@ -79,7 +79,7 @@ Each of the four major groups has its own algorithm: All operations are done in parallel unless specified otherwise. - (1) Send a GF_FILE_LK request on all children for a write lock on + (1) Send a GF_FILE_LK request on all children for a write lock on the appropriate region (for metadata operations: entire file (0, 0) for writev: (offset, offset+size of buffer)) @@ -87,11 +87,11 @@ Each of the four major groups has its own algorithm: - If a lock request fails on a child: unlock all children try to acquire a blocking lock (F_SETLKW) on each child, serially. - + If this fails (due to ENOTCONN or EINVAL): Consider this child as dead for rest of transaction. - (2) Mark all children as "pending" on all (alive) children + (2) Mark all children as "pending" on all (alive) children (see below for meaning of "pending"). - If it fails on any child: @@ -105,7 +105,7 @@ Each of the four major groups has its own algorithm: (4) Unmark all successful children as not "pending" on all nodes. (5) Unlock region on all (alive) children. - + ----------- - dir-write ----------- @@ -121,11 +121,11 @@ Each of the four major groups has its own algorithm: The "pending" number is like a journal entry. A pending entry is an array of 32-bit integers stored in network byte-order as the extended attribute of an inode (which can be a directory as well). - + There are three keys corresponding to three types of pending operations: - AFR_METADATA_PENDING - There are some metadata operations pending on this inode (perms, ctime/mtime, + There are some metadata operations pending on this inode (perms, ctime/mtime, xattr, etc.). - AFR_DATA_PENDING @@ -134,7 +134,7 @@ Each of the four major groups has its own algorithm: - AFR_ENTRY_PENDING There are some directory operations pending on this directory (create, unlink, etc.). - + ----------- * Self heal ----------- @@ -155,7 +155,7 @@ Each of the four major groups has its own algorithm: other is directory): - Announce to the user via log that a split-brain situation has been detected, and do nothing. - + - On open, gather extended attribute data: - Consider the file with the highest AFR_DATA_PENDING number as the definitive one and replicate its contents on all other @@ -190,7 +190,7 @@ Thus, if lookup on c1 returns an inode number "2", it is scaled to "4" This way we ensure that there is never a collision of inode numbers from two different children. -This reduction of inode space doesn't really reduce the usability of +This reduction of inode space doesn't really reduce the usability of replicate since even if we assume replicate has 1024 children (which would be a highly unusual scenario), each child still has a 54-bit inode space. diff --git a/doc/hacker-guide/write-behind.txt b/doc/legacy/hacker-guide/write-behind.txt index a6e9a8890e4..50b7d2a1d07 100644 --- a/doc/hacker-guide/write-behind.txt +++ b/doc/legacy/hacker-guide/write-behind.txt @@ -4,7 +4,7 @@ basic working write behind is basically a translator to lie to the application that the write-requests are finished, even before it is actually finished. on a regular translator tree without write-behind, control flow is like this: - + 1. application makes a write() system call. 2. VFS ==> FUSE ==> /dev/fuse. 3. fuse-bridge initiates a glusterfs writev() call. @@ -12,13 +12,13 @@ basic working 5. client-protocol, on receiving reply from server, starts STACK_UNWIND() towards the fuse-bridge. on a translator tree with write-behind, control flow is like this: - + 1. application makes a write() system call. 2. VFS ==> FUSE ==> /dev/fuse. 3. fuse-bridge initiates a glusterfs writev() call. 4. writev() is STACK_WIND()ed upto write-behind translator. 5. write-behind adds the write buffer to its internal queue and does a STACK_UNWIND() towards the fuse-bridge. - + write call is completed in application's percepective. after STACK_UNWIND()ing towards the fuse-bridge, write-behind initiates a fresh writev() call to its child translator, whose replies will be consumed by write-behind itself. write-behind _doesn't_ cache the write buffer, unless 'option flush-behind on' is specified in volume specification file. windowing @@ -26,20 +26,20 @@ windowing write respect to write-behind, each write-buffer has three flags: 'stack_wound', 'write_behind' and 'got_reply'. - stack_wound: if set, indicates that write-behind has initiated STACK_WIND() towards child translator. + stack_wound: if set, indicates that write-behind has initiated STACK_WIND() towards child translator. write_behind: if set, indicates that write-behind has done STACK_UNWIND() towards fuse-bridge. got_reply: if set, indicates that write-behind has received reply from child translator for a writev() STACK_WIND(). a request will be destroyed by write-behind only if this flag is set. currently pending write requests = aggregate size of requests with write_behind = 1 and got_reply = 0. - - window size limits the aggregate size of currently pending write requests. once the pending requests' size has reached the window size, write-behind blocks writev() calls from fuse-bridge. + + window size limits the aggregate size of currently pending write requests. once the pending requests' size has reached the window size, write-behind blocks writev() calls from fuse-bridge. blocking is only from application's perspective. write-behind does STACK_WIND() to child translator straight-away, but hold behind the STACK_UNWIND() towards fuse-bridge. STACK_UNWIND() is done only once write-behind gets enough replies to accomodate for currently blocked request. - + flush behind ------------ if 'option flush-behind on' is specified in volume specification file, then write-behind sends aggregate write requests to child translator, instead of regular per request STACK_WIND()s. - + diff --git a/doc/handling-options.txt b/doc/legacy/handling-options.txt index cac1fe93947..9a3b2510acb 100644 --- a/doc/handling-options.txt +++ b/doc/legacy/handling-options.txt @@ -2,12 +2,12 @@ How to add a new option to a given volume ? =========================================== -* Add a entry in 'struct volume_options options[]' with your key, what is +* Add a entry in 'struct volume_options options[]' with your key, what is the type of the 'key', etc. -* The 'key' and corresponding 'value' given for the same by user are validated +* The 'key' and corresponding 'value' given for the same by user are validated before calling init() of the translator/transport/scheduler/auth-module. -* Once the complete init() is successful, user will get a warning if he has +* Once the complete init() is successful, user will get a warning if he has given a 'key' which is not defined in these modules. diff --git a/doc/mac-related-xattrs.txt b/doc/legacy/mac-related-xattrs.txt index 805658334e6..92bb2ceef2d 100644 --- a/doc/mac-related-xattrs.txt +++ b/doc/legacy/mac-related-xattrs.txt @@ -1,21 +1,21 @@ -This document is intended to briefly explain how the Extended Attributes on +This document is intended to briefly explain how the Extended Attributes on Darwin 10.5.x releases works ---- -On Darwin other than all the normal filesystem operations, 'Finder' (like -Explorer in Windows but a little more) keeps its information in two extended -attributes named 'com.apple.FinderInfo' and 'com.apple.ResourceFork'. If these -xattrs are not implemented the filesystem won't be shown on Finder, and if they -are not implemented properly there may be issues when some of the file operations -are done through GUI of Finder. But when a filesystem is used over mountpoint in a -terminal, everything is fine and these xattrs are not required. +On Darwin other than all the normal filesystem operations, 'Finder' (like +Explorer in Windows but a little more) keeps its information in two extended +attributes named 'com.apple.FinderInfo' and 'com.apple.ResourceFork'. If these +xattrs are not implemented the filesystem won't be shown on Finder, and if they +are not implemented properly there may be issues when some of the file operations +are done through GUI of Finder. But when a filesystem is used over mountpoint in a +terminal, everything is fine and these xattrs are not required. -Currently the way these xattrs are implemented is simple. All the xattr calls +Currently the way these xattrs are implemented is simple. All the xattr calls (getxattr, setxattr, listxattr, removexattr) are passed down to underlaying filesystem, most of the cases when exported FS is on MacOS X itself, these keys are supported, hence -the fops succeed. But in the case of using exports of different OS on Darwin the issue is -extended attribute prefix like 'com.apple.' may not be supported, hence the problem with +the fops succeed. But in the case of using exports of different OS on Darwin the issue is +extended attribute prefix like 'com.apple.' may not be supported, hence the problem with Finder. To solve this issue, GlusterFS returns virtual default values to these keys, which works fine on most of the cases. diff --git a/doc/porting_guide.txt b/doc/legacy/porting_guide.txt index 905bb422858..5705cd96461 100644 --- a/doc/porting_guide.txt +++ b/doc/legacy/porting_guide.txt @@ -3,7 +3,7 @@ * General setup -The configure script will detect the target platform for the build. +The configure script will detect the target platform for the build. All platform-specific CFLAGS, macro definitions should be done in configure.ac @@ -15,11 +15,11 @@ Platform-specific code can be written like this: * Coding guidelines -In general, avoid glibc extensions. For example, nested functions don't work +In general, avoid glibc extensions. For example, nested functions don't work on Mac OS X. It is best to stick to C99. When using library calls and system calls, pay attention to the -portability notes. As far as possible stick to POSIX-specified behavior. +portability notes. As far as possible stick to POSIX-specified behavior. Do not use anything expressly permitted by the specification. For example, some fields in structures may be present only on certain platforms. Avoid use of such things. @@ -27,14 +27,14 @@ use of such things. Do not pass values of constants such as F_*, O_*, errno values, etc. across platforms. -Please refer compat-errno.h for more details about errno handling inside -glusterfs for cross platform. +Please refer compat-errno.h for more details about errno handling inside +glusterfs for cross platform. * Specific issues - The argp library is available only on Linux through glibc, but for other platforms glusterfs has already included argp-standalone library which will - statically linked during the glusterfs build. + statically linked during the glusterfs build. - Extended attribute calls (setxattr, listxattr, etc.) have differing prototypes on different platforms. See compat.h for macro definitions to resolve this, also diff --git a/doc/replicate.lyx b/doc/legacy/replicate.lyx index d11a92beedd..58ba6b2e00e 100644 --- a/doc/replicate.lyx +++ b/doc/legacy/replicate.lyx @@ -36,7 +36,7 @@ Automatic File Replication (replicate) in GlusterFS \end_layout \begin_layout Author -Vikas Gorur +Vikas Gorur \family typewriter \size larger <vikas@gluster.com> @@ -77,7 +77,7 @@ The replicate translator of GlusterFS aims to keep identical copies of a file \end_layout \begin_layout Standard -In the rest of the document the terms +In the rest of the document the terms \begin_inset Quotes eld \end_inset @@ -85,7 +85,7 @@ subvolume \begin_inset Quotes erd \end_inset - and + and \begin_inset Quotes eld \end_inset @@ -167,7 +167,7 @@ end{verbatim} \begin_layout Standard This defines an replicate volume with two subvolumes, brick1, and brick2. - For replicate to work properly, it is essential that its subvolumes support + For replicate to work properly, it is essential that its subvolumes support \series bold extended attributes \series default @@ -177,7 +177,7 @@ extended attributes \end_layout \begin_layout Standard -The storage volumes used as backend for replicate +The storage volumes used as backend for replicate \emph on must \emph default @@ -262,7 +262,7 @@ replicate divides all filesystem write operations into three classes: \begin_layout Itemize \series bold -data: +data: \series default Operations that modify the contents of a file (write, truncate). \end_layout @@ -270,7 +270,7 @@ Operations that modify the contents of a file (write, truncate). \begin_layout Itemize \series bold -metadata: +metadata: \series default Operations that modify attributes of a file or directory (permissions, ownership , etc.). @@ -279,7 +279,7 @@ Operations that modify attributes of a file or directory (permissions, ownership \begin_layout Itemize \series bold -entry: +entry: \series default Operations that create or delete directory entries (mkdir, create, rename, rmdir, unlink, etc.). @@ -345,7 +345,7 @@ Self-Heal \begin_layout Standard replicate automatically tries to fix any inconsistencies it detects among different copies of a file. - It uses information in the change log to determine which copy is the + It uses information in the change log to determine which copy is the \begin_inset Quotes eld \end_inset @@ -357,7 +357,7 @@ correct \end_layout \begin_layout Standard -Self-heal is triggered when a file or directory is first +Self-heal is triggered when a file or directory is first \begin_inset Quotes eld \end_inset @@ -374,7 +374,7 @@ If the entry being accessed is a directory: \end_layout \begin_layout Itemize -The contents of the +The contents of the \begin_inset Quotes eld \end_inset @@ -412,7 +412,7 @@ It may happen that one replicate client can access only some of the servers in a cluster and another replicate client can access the remaining servers. Or it may happen that in a cluster of two servers, one server goes down and comes back up, but the other goes down immediately. - Both these scenarios result in a + Both these scenarios result in a \begin_inset Quotes eld \end_inset @@ -425,7 +425,7 @@ split-brain \begin_layout Standard In a split-brain situation, there will be two or more copies of a file, - all of which are + all of which are \begin_inset Quotes eld \end_inset @@ -484,12 +484,12 @@ split-brain ). This means if a discrepancy is noticed in the attributes or content of a file, the copy on the `favorite-child' will be considered the definitive - version and its contents will + version and its contents will \emph on -overwrite +overwrite \emph default the contents of all other copies. - Use this option with caution! It is possible to + Use this option with caution! It is possible to \emph on lose data \emph default @@ -502,7 +502,7 @@ Self-heal options \end_layout \begin_layout Standard -Setting any of these options to +Setting any of these options to \begin_inset Quotes eld \end_inset @@ -549,7 +549,7 @@ If any of these options is turned off, it disables writing of change log entries for that class of file operations. That is, steps 2 and 4 of the write algorithm (see above) are not done. Note that if the change log is not written, the self-heal algorithm cannot - determine the + determine the \begin_inset Quotes eld \end_inset @@ -557,7 +557,7 @@ correct \begin_inset Quotes erd \end_inset - version of a file and hence self-heal will only be able to fix + version of a file and hence self-heal will only be able to fix \begin_inset Quotes eld \end_inset @@ -602,7 +602,7 @@ These options let you specify the number of lock servers to use for each The default values are satisfactory in most cases. If you are extra paranoid, you may want to increase the values. However, be very cautious if you set the data- or entry- lock server counts - to zero, since this can result in + to zero, since this can result in \emph on lost data. @@ -610,11 +610,11 @@ lost data. For example, if you set the data-lock-server-count to zero, and two application s write to the same region of a file, there is a possibility that none of your servers will have all the data. - In other words, the copies will be + In other words, the copies will be \emph on inconsistent \emph default -, and +, and \emph on incomplete \emph default diff --git a/doc/replicate.pdf b/doc/legacy/replicate.pdf Binary files differindex b7212af2b4e..b7212af2b4e 100644 --- a/doc/replicate.pdf +++ b/doc/legacy/replicate.pdf diff --git a/doc/rpc-for-glusterfs.changes-done.txt b/doc/legacy/rpc-for-glusterfs.changes-done.txt index 6bbbca78826..6bbbca78826 100644 --- a/doc/rpc-for-glusterfs.changes-done.txt +++ b/doc/legacy/rpc-for-glusterfs.changes-done.txt diff --git a/doc/solaris-related-xattrs.txt b/doc/legacy/solaris-related-xattrs.txt index e26efa5d189..3a4643948c0 100644 --- a/doc/solaris-related-xattrs.txt +++ b/doc/legacy/solaris-related-xattrs.txt @@ -1,42 +1,42 @@ Solaris Extended Attributes In solaris extended attributes are logically supported as files -within the filesystem. The file system is therefore augmented +within the filesystem. The file system is therefore augmented with an orthogonal namespace of file attributes. Attribute values are accessed by file descriptors obtained through a special attribute -interface. This type of logical view of "attributes as files" allows -the leveraging of existing file system interface functionality to -support the construction, deletion and manipulation of attributes. +interface. This type of logical view of "attributes as files" allows +the leveraging of existing file system interface functionality to +support the construction, deletion and manipulation of attributes. But as we have tested through this functionality provided by Solaris we have come accross two major issues as written below. -1. Symlink XATTR_NOFOLLOW not present for creating extended attributes +1. Symlink XATTR_NOFOLLOW not present for creating extended attributes directly on the symlinks like other platforms Linux,MAC-OSX,BSD etc. - An implementation is present for O_NOFOLLOW for "openat()" call sets - up errno ELOOP whenever encountered with a symlink and also another + An implementation is present for O_NOFOLLOW for "openat()" call sets + up errno ELOOP whenever encountered with a symlink and also another implementation AT_SYMLINK_NOFOLLOW which is not present for calls like "attropen(), openat()" a snippet of test code which helped us understand this behaviour -------------------------------------- - attrfd = attropen (path, key, + attrfd = attropen (path, key, flags|AT_SYMLINK_NOFOLLOW|O_CREAT|O_WRONLY|O_NOFOLLOW, 0777); if (attrfd >= 0) { ftruncate (attrfd, 0); ret = write (attrfd, value, size); close (attrfd); } else { - fprintf (stderr, "Couldn't set extended attribute for %s (%d)\n", + fprintf (stderr, "Couldn't set extended attribute for %s (%d)\n", path, errno); - } + } -------------------------------------- 2. Extended attribute support for special files like device files, fifo files - is not supported under solaris. + is not supported under solaris. Apart from these glitches almost everything regarding porting functionality -for extended attribute calls has been properly implemented in compat.c +for extended attribute calls has been properly implemented in compat.c with writing wrapper around functions over "attropen()", "openat()", "unlinkat()" diff --git a/doc/stat-prefetch-design.txt b/doc/legacy/stat-prefetch-design.txt index 06d0ad37e7d..68ed423d3dd 100644 --- a/doc/stat-prefetch-design.txt +++ b/doc/legacy/stat-prefetch-design.txt @@ -1,64 +1,64 @@ what is stat-prefetch? ====================== It is a translator which caches the dentries read in readdir. This dentry -list is stored in the context of fd. Later when lookup happens on +list is stored in the context of fd. Later when lookup happens on [parent-inode, basename (path)] combination, this list is searched for the basename. The dentry thus searched is used to fill up the stat corresponding to path being looked upon, thereby short-cutting lookup calls. This cache is -preserved till closedir is called on the fd. The purpose of this translator -is to optimize operations like 'ls -l', where a readdir is followed by +preserved till closedir is called on the fd. The purpose of this translator +is to optimize operations like 'ls -l', where a readdir is followed by lookup (stat) calls on each directory entry. -1. stat-prefetch harnesses the efficiency of short lookup calls - (saves network roundtrip time for lookup calls from being accounted to +1. stat-prefetch harnesses the efficiency of short lookup calls + (saves network roundtrip time for lookup calls from being accounted to the stat call). -2. To maintain the correctness, it does lookup-behind - lookup is winded to - underlying translators after it is unwound to upper translators. +2. To maintain the correctness, it does lookup-behind - lookup is winded to + underlying translators after it is unwound to upper translators. lookup-behind is necessary as inode gets populated in server inode table - only in lookup-cbk and also because various translators store their + only in lookup-cbk and also because various translators store their contexts in inode contexts during lookup calls. fops to be implemented: ======================= * lookup - 1. check the dentry cache stored in context of fds opened by the same process + 1. check the dentry cache stored in context of fds opened by the same process on parent inode for basename. If found unwind with cached stat, else wind - the lookup call to underlying translators. - 2. stat is stored in the context of inode if the path being looked upon + the lookup call to underlying translators. + 2. stat is stored in the context of inode if the path being looked upon happens to be directory. This stat will be used to fill postparent stat when lookup happens on any of the directory contents. * readdir 1. cache the direntries returned in readdir_cbk in the context of fd. - 2. if the readdir is happening on non-expected offsets (means a seekdir/rewinddir + 2. if the readdir is happening on non-expected offsets (means a seekdir/rewinddir has happened), cache has to be flushed. - 3. delete the entry corresponding to basename of path on which fd is opened + 3. delete the entry corresponding to basename of path on which fd is opened from cache stored in parent. * chmod/fchmod delete the entry corresponding to basename from cache stored in context of - fds opened on parent inode, since these calls change st_mode and st_ctime of + fds opened on parent inode, since these calls change st_mode and st_ctime of stat. - + * chown/fchown - delete the entry corresponding to basename from cache stored in context of - fds opened on parent inode, since these calls change st_uid/st_gid and + delete the entry corresponding to basename from cache stored in context of + fds opened on parent inode, since these calls change st_uid/st_gid and st_ctime of stat. * truncate/ftruncate - delete the entry corresponding to basename from cache stored in context of + delete the entry corresponding to basename from cache stored in context of fds opened on parent inode, since these calls change st_size/st_mtime of stat. * utimens - delete the entry corresponding to basename from cache stored in context of + delete the entry corresponding to basename from cache stored in context of fds opened on parent inode, since this call changes st_atime/st_mtime of stat. * readlink delete the entry corresponding to basename from cache stored in context of fds opened on parent inode, since this call changes st_atime of stat. - + * unlink - 1. delete the entry corresponding to basename from cache stored in context of + 1. delete the entry corresponding to basename from cache stored in context of fds, opened on parent directory containing the file being unlinked. 2. delete the entry corresponding to basename of parent directory from cache of grand-parent. @@ -66,14 +66,14 @@ fops to be implemented: * rmdir 1. delete the entry corresponding to basename from cache stored in context of fds opened on parent inode. - 2. remove the entire cache from all fds opened on inode corresponding to + 2. remove the entire cache from all fds opened on inode corresponding to directory being removed. 3. delete the entry correspondig to basename of parent from cache stored in grand-parent. * readv delete the entry corresponding to basename from cache stored in context of fds - opened on parent inode, since readv changes st_atime of file. + opened on parent inode, since readv changes st_atime of file. * writev delete the entry corresponding to basename from cache stored in context of fds @@ -82,29 +82,29 @@ fops to be implemented: * fsync there is a confusion here as to whether fsync updates mtime/ctimes. Disk based - filesystems (atleast ext2) just writes the times stored in inode to disk - during fsync and not the time at which fsync is being done. But in glusterfs, - a translator like write-behind actually sends writes during fsync which will - change mtime/ctime. Hence stat-prefetch implements fsync to delete the entry + filesystems (atleast ext2) just writes the times stored in inode to disk + during fsync and not the time at which fsync is being done. But in glusterfs, + a translator like write-behind actually sends writes during fsync which will + change mtime/ctime. Hence stat-prefetch implements fsync to delete the entry corresponding to basename from cache stored in context of fds opened on parent inode. - + * rename - 1. remove entry corresponding to oldname from cache stored in fd contexts of + 1. remove entry corresponding to oldname from cache stored in fd contexts of oldparent. 2. remove entry corresponding to newname from cache stored in fd contexts of - newparent. - 3. remove entry corresponding to oldparent from cache stored in + newparent. + 3. remove entry corresponding to oldparent from cache stored in old-grand-parent, since removing oldname changes st_mtime and st_ctime of oldparent stat. - 4. remove entry corresponding to newparent from cache stored in + 4. remove entry corresponding to newparent from cache stored in new-grand-parent, since adding newname changes st_mtime and st_ctime of newparent stat. - 5. if oldname happens to be a directory, remove entire cache from all fds + 5. if oldname happens to be a directory, remove entire cache from all fds opened on it. * create/mknod/mkdir/symlink/link - delete entry corresponding to basename of parent directory in which these + delete entry corresponding to basename of parent directory in which these operations are happening, from cache stored in context of fds opened on grand-parent, since adding a new entry to a directory changes st_mtime and st_ctime of parent directory. @@ -116,13 +116,13 @@ fops to be implemented: * setdents 1. remove entry corresponding to basename of path on which fd is opened from cache stored in context of fds opened on parent. - 2. for each of the entry in the direntry list, delete from cache stored in + 2. for each of the entry in the direntry list, delete from cache stored in context of fd, the entry corresponding to basename of path being passed. * getdents 1. remove entry corresponding to basename of path on which fd is opened from - cache stored in parent, since getdents changes st_atime. - 2. remove entries corresponding to symbolic links from cache, since readlink + cache stored in parent, since getdents changes st_atime. + 2. remove entries corresponding to symbolic links from cache, since readlink would've changed st_atime. * checksum @@ -144,11 +144,11 @@ callbacks to be implemented: limitations: ============ * since a readdir does not return extended attributes of file, if need_xattr is - set, short-cutting of lookup does not happen and lookup is passed to + set, short-cutting of lookup does not happen and lookup is passed to underlying translators. * posix_readdir does not check whether the dentries are spanning across multiple - mount points. Hence it is not transforming inode numbers in stat buffers if + mount points. Hence it is not transforming inode numbers in stat buffers if posix is configured to allow export directory spanning on multiple mountpoints. - This is a bug which needs to be fixed. posix_readdir should treat dentries the + This is a bug which needs to be fixed. posix_readdir should treat dentries the same way as if lookup is happening on dentries. diff --git a/doc/translator-options.txt b/doc/legacy/translator-options.txt index 278ef5b0083..3422c058a5d 100644 --- a/doc/translator-options.txt +++ b/doc/legacy/translator-options.txt @@ -1,7 +1,7 @@ mount/fuse: * direct-io-mode GF_OPTION_TYPE_BOOL on|off|yes|no * mount-point (mountpoint) GF_OPTION_TYPE_PATH <any-posix-valid-path> - * attribute-timeout GF_OPTION_TYPE_DOUBLE 0.0 + * attribute-timeout GF_OPTION_TYPE_DOUBLE 0.0 * entry-timeout GF_OPTION_TYPE_DOUBLE 0.0 protocol/server: @@ -13,20 +13,20 @@ protocol/server: protocol/client: * username GF_OPTION_TYPE_ANY - * password GF_OPTION_TYPE_ANY + * password GF_OPTION_TYPE_ANY * transport-type GF_OPTION_TYPE_STR tcp|socket|ib-verbs|unix|ib-sdp| tcp/client|ib-verbs/client - * remote-host GF_OPTION_TYPE_ANY - * remote-subvolume GF_OPTION_TYPE_ANY - * transport-timeout GF_OPTION_TYPE_TIME 5-1013 + * remote-host GF_OPTION_TYPE_ANY + * remote-subvolume GF_OPTION_TYPE_ANY + * transport-timeout GF_OPTION_TYPE_TIME 5-1013 cluster/replicate: * read-subvolume GF_OPTION_TYPE_XLATOR * favorite-child GF_OPTION_TYPE_XLATOR - * data-self-heal GF_OPTION_TYPE_BOOL + * data-self-heal GF_OPTION_TYPE_BOOL * metadata-self-heal GF_OPTION_TYPE_BOOL - * entry-self-heal GF_OPTION_TYPE_BOOL - * data-change-log GF_OPTION_TYPE_BOOL + * entry-self-heal GF_OPTION_TYPE_BOOL + * data-change-log GF_OPTION_TYPE_BOOL * metadata-change-log GF_OPTION_TYPE_BOOL * entry-change-log GF_OPTION_TYPE_BOOL * data-lock-server-count GF_OPTION_TYPE_INT 0 @@ -34,54 +34,54 @@ cluster/replicate: * entry-lock-server-count GF_OPTION_TYPE_INT 0 cluster/distribute: - * lookup-unhashed GF_OPTION_TYPE_BOOL + * lookup-unhashed GF_OPTION_TYPE_BOOL cluster/unify: - * namespace GF_OPTION_TYPE_XLATOR - * scheduler GF_OPTION_TYPE_STR alu|rr|random|nufa|switch + * namespace GF_OPTION_TYPE_XLATOR + * scheduler GF_OPTION_TYPE_STR alu|rr|random|nufa|switch * self-heal GF_OPTION_TYPE_STR foreground|background|off - * optimist GF_OPTION_TYPE_BOOL + * optimist GF_OPTION_TYPE_BOOL cluster/nufa: - local-volume-name GF_OPTION_TYPE_XLATOR + local-volume-name GF_OPTION_TYPE_XLATOR cluster/stripe: - * block-size GF_OPTION_TYPE_ANY + * block-size GF_OPTION_TYPE_ANY * use-xattr GF_OPTION_TYPE_BOOL debug/trace: * include-ops (include) GF_OPTION_TYPE_STR - * exclude-ops (exclude) GF_OPTION_TYPE_STR + * exclude-ops (exclude) GF_OPTION_TYPE_STR encryption/rot-13: * encrypt-write GF_OPTION_TYPE_BOOL - * decrypt-read GF_OPTION_TYPE_BOOL + * decrypt-read GF_OPTION_TYPE_BOOL features/path-convertor: - * start-offset GF_OPTION_TYPE_INT 0-4095 - * end-offset GF_OPTION_TYPE_INT 1-4096 + * start-offset GF_OPTION_TYPE_INT 0-4095 + * end-offset GF_OPTION_TYPE_INT 1-4096 * replace-with GF_OPTION_TYPE_ANY features/trash: - * trash-dir GF_OPTION_TYPE_PATH + * trash-dir GF_OPTION_TYPE_PATH features/locks: - * mandatory-locks (mandatory) GF_OPTION_TYPE_BOOL + * mandatory-locks (mandatory) GF_OPTION_TYPE_BOOL features/filter: - * root-squashing GF_OPTION_TYPE_BOOL + * root-squashing GF_OPTION_TYPE_BOOL * read-only GF_OPTION_TYPE_BOOL * fixed-uid GF_OPTION_TYPE_INT * fixed-gid GF_OPTION_TYPE_INT - * translate-uid GF_OPTION_TYPE_ANY + * translate-uid GF_OPTION_TYPE_ANY * translate-gid GF_OPTION_TYPE_ANY - * filter-uid GF_OPTION_TYPE_ANY - * filter-gid GF_OPTION_TYPE_ANY + * filter-uid GF_OPTION_TYPE_ANY + * filter-gid GF_OPTION_TYPE_ANY features/quota: * min-free-disk-limit GF_OPTION_TYPE_PERCENT * refresh-interval GF_OPTION_TYPE_TIME - * disk-usage-limit GF_OPTION_TYPE_SIZET + * disk-usage-limit GF_OPTION_TYPE_SIZET storage/posix: * o-direct GF_OPTION_TYPE_BOOL @@ -104,16 +104,16 @@ storage/bdb: * access-mode GF_OPTION_TYPE_STR performance/read-ahead: - * force-atime-update GF_OPTION_TYPE_BOOL + * force-atime-update GF_OPTION_TYPE_BOOL * page-size GF_OPTION_TYPE_SIZET (64 * GF_UNIT_KB)-(2 * GF_UNIT_MB) - * page-count GF_OPTION_TYPE_INT 1-16 + * page-count GF_OPTION_TYPE_INT 1-16 performance/write-behind: * flush-behind GF_OPTION_TYPE_BOOL - * aggregate-size GF_OPTION_TYPE_SIZET (128 * GF_UNIT_KB)-(4 * GF_UNIT_MB) - * window-size GF_OPTION_TYPE_SIZET (512 * GF_UNIT_KB)-(1 * GF_UNIT_GB) - * enable-O_SYNC GF_OPTION_TYPE_BOOL - * disable-for-first-nbytes GF_OPTION_TYPE_SIZET 1 - (1 * GF_UNIT_MB) + * aggregate-size GF_OPTION_TYPE_SIZET (128 * GF_UNIT_KB)-(4 * GF_UNIT_MB) + * window-size GF_OPTION_TYPE_SIZET (512 * GF_UNIT_KB)-(1 * GF_UNIT_GB) + * enable-O_SYNC GF_OPTION_TYPE_BOOL + * disable-for-first-nbytes GF_OPTION_TYPE_SIZET 1 - (1 * GF_UNIT_MB) performance/symlink-cache: @@ -121,9 +121,9 @@ performance/io-threads: * thread-count GF_OPTION_TYPE_INT 1-32 performance/io-cache: - * priority GF_OPTION_TYPE_ANY - * cache-timeout (force-revalidate-timeout) GF_OPTION_TYPE_INT 0-60 - * page-size GF_OPTION_TYPE_SIZET (16 * GF_UNIT_KB)-(4 * GF_UNIT_MB) + * priority GF_OPTION_TYPE_ANY + * cache-timeout (force-revalidate-timeout) GF_OPTION_TYPE_INT 0-60 + * page-size GF_OPTION_TYPE_SIZET (16 * GF_UNIT_KB)-(4 * GF_UNIT_MB) * cache-size GF_OPTION_TYPE_SIZET (4 * GF_UNIT_MB)-(6 * GF_UNIT_GB) performance/quick-read: @@ -132,16 +132,16 @@ performance/quick-read: auth: - addr: - * auth.addr.*.allow GF_OPTION_TYPE_ANY - * auth.addr.*.reject GF_OPTION_TYPE_ANY + * auth.addr.*.allow GF_OPTION_TYPE_ANY + * auth.addr.*.reject GF_OPTION_TYPE_ANY - login: - * auth.login.*.allow GF_OPTION_TYPE_ANY + * auth.login.*.allow GF_OPTION_TYPE_ANY * auth.login.*.password GF_OPTION_TYPE_ANY scheduler/alu: - * scheduler.alu.order (alu.order) - GF_OPTION_TYPE_ANY + * scheduler.alu.order (alu.order) + GF_OPTION_TYPE_ANY * scheduler.alu.disk-usage.entry-threshold (alu.disk-usage.entry-threshold) GF_OPTION_TYPE_SIZET * scheduler.alu.disk-usage.exit-threshold (alu.disk-usage.exit-threshold) @@ -149,17 +149,17 @@ scheduler/alu: * scheduler.alu.write-usage.entry-threshold (alu.write-usage.entry-threshold) GF_OPTION_TYPE_SIZET * scheduler.alu.write-usage.exit-threshold (alu.write-usage.exit-threshold) - GF_OPTION_TYPE_SIZET + GF_OPTION_TYPE_SIZET * scheduler.alu.read-usage.entry-threshold (alu.read-usage.entry-threshold) GF_OPTION_TYPE_SIZET * scheduler.alu.read-usage.exit-threshold (alu.read-usage.exit-threshold) - GF_OPTION_TYPE_SIZET + GF_OPTION_TYPE_SIZET * scheduler.alu.open-files-usage.entry-threshold (alu.open-files-usage.entry-threshold) GF_OPTION_TYPE_INT * scheduler.alu.open-files-usage.exit-threshold (alu.open-files-usage.exit-threshold) - GF_OPTION_TYPE_INT + GF_OPTION_TYPE_INT * scheduler.read-only-subvolumes (alu.read-only-subvolumes) - GF_OPTION_TYPE_ANY + GF_OPTION_TYPE_ANY * scheduler.refresh-interval (alu.refresh-interval) GF_OPTION_TYPE_TIME * scheduler.limits.min-free-disk (alu.limits.min-free-disk) @@ -168,11 +168,11 @@ scheduler/alu: GF_OPTION_TYPE_INT scheduler/nufa: - * scheduler.refresh-interval (nufa.refresh-interval) + * scheduler.refresh-interval (nufa.refresh-interval) GF_OPTION_TYPE_TIME - * scheduler.limits.min-free-disk (nufa.limits.min-free-disk) + * scheduler.limits.min-free-disk (nufa.limits.min-free-disk) GF_OPTION_TYPE_PERCENT - * scheduler.local-volume-name (nufa.local-volume-name) + * scheduler.local-volume-name (nufa.local-volume-name) GF_OPTION_TYPE_XLATOR scheduler/random: @@ -204,20 +204,20 @@ transport/ib-verbs: * transport.ib-verbs.work-request-recv-count (ib-verbs-work-request-recv-count) GF_OPTION_TYPE_INT * remote-port (transport.remote-port,transport.ib-verbs.remote-port) - GF_OPTION_TYPE_INT - * transport.ib-verbs.listen-port GF_OPTION_TYPE_INT - * transport.ib-verbs.connect-path (connect-path) GF_OPTION_TYPE_ANY - * transport.ib-verbs.bind-path (bind-path) GF_OPTION_TYPE_ANY - * transport.ib-verbs.listen-path (listen-path) GF_OPTION_TYPE_ANY + GF_OPTION_TYPE_INT + * transport.ib-verbs.listen-port GF_OPTION_TYPE_INT + * transport.ib-verbs.connect-path (connect-path) GF_OPTION_TYPE_ANY + * transport.ib-verbs.bind-path (bind-path) GF_OPTION_TYPE_ANY + * transport.ib-verbs.listen-path (listen-path) GF_OPTION_TYPE_ANY * transport.address-family (address-family) GF_OPTION_TYPE_STR inet|inet6|inet/inet6| inet6/inet|unix|inet-sdp transport/socket: - * transport.remote-port (remote-port,transport.socket.remote-port) GF_OPTION_TYPE_INT - * transport.socket.listen-port (listen-port) GF_OPTION_TYPE_INT - * transport.socket.bind-address (bind-address) GF_OPTION_TYPE_ANY - * transport.socket.connect-path (connect-path) GF_OPTION_TYPE_ANY - * transport.socket.bind-path (bind-path) GF_OPTION_TYPE_ANY + * transport.remote-port (remote-port,transport.socket.remote-port) GF_OPTION_TYPE_INT + * transport.socket.listen-port (listen-port) GF_OPTION_TYPE_INT + * transport.socket.bind-address (bind-address) GF_OPTION_TYPE_ANY + * transport.socket.connect-path (connect-path) GF_OPTION_TYPE_ANY + * transport.socket.bind-path (bind-path) GF_OPTION_TYPE_ANY * transport.socket.listen-path (listen-path) GF_OPTION_TYPE_ANY * transport.address-family (address-family) GF_OPTION_TYPE_STR inet|inet6| inet/inet6|inet6/inet| diff --git a/doc/qa/qa-client.vol b/doc/qa/legacy/qa-client.vol index 176dda5892a..bcf242347d3 100644 --- a/doc/qa/qa-client.vol +++ b/doc/qa/legacy/qa-client.vol @@ -1,17 +1,17 @@ # This spec file should be used for testing before any release -# +# # 1st client volume client1 type protocol/client option transport-type tcp # for TCP/IP transport # option transport-type ib-sdp # for Infiniband transport -# option transport-type ib-verbs # for ib-verbs transport +# option transport-type ib-verbs # for ib-verbs transport # option transport.ib-verbs.work-request-send-size 131072 # option transport.ib-verbs.work-request-send-count 64 # option transport.ib-verbs.work-request-recv-size 131072 # option transport.ib-verbs.work-request-recv-count 64 - option remote-host 127.0.0.1 + option remote-host 127.0.0.1 option remote-subvolume ra1 end-volume @@ -20,8 +20,8 @@ volume client2 type protocol/client option transport-type tcp # for TCP/IP transport # option transport-type ib-sdp # for Infiniband transport -# option transport-type ib-verbs # for ib-verbs transport - option remote-host 127.0.0.1 +# option transport-type ib-verbs # for ib-verbs transport + option remote-host 127.0.0.1 option remote-subvolume ra2 end-volume @@ -30,8 +30,8 @@ volume client3 type protocol/client option transport-type tcp # for TCP/IP transport # option transport-type ib-sdp # for Infiniband transport -# option transport-type ib-verbs # for ib-verbs transport - option remote-host 127.0.0.1 +# option transport-type ib-verbs # for ib-verbs transport + option remote-host 127.0.0.1 option remote-subvolume ra3 end-volume @@ -40,8 +40,8 @@ volume client4 type protocol/client option transport-type tcp # for TCP/IP transport # option transport-type ib-sdp # for Infiniband transport -# option transport-type ib-verbs # for ib-verbs transport - option remote-host 127.0.0.1 +# option transport-type ib-verbs # for ib-verbs transport + option remote-host 127.0.0.1 option remote-subvolume ra4 end-volume @@ -50,8 +50,8 @@ volume client5 type protocol/client option transport-type tcp # for TCP/IP transport # option transport-type ib-sdp # for Infiniband transport -# option transport-type ib-verbs # for ib-verbs transport - option remote-host 127.0.0.1 +# option transport-type ib-verbs # for ib-verbs transport + option remote-host 127.0.0.1 option remote-subvolume ra5 end-volume @@ -60,8 +60,8 @@ volume client6 type protocol/client option transport-type tcp # for TCP/IP transport # option transport-type ib-sdp # for Infiniband transport -# option transport-type ib-verbs # for ib-verbs transport - option remote-host 127.0.0.1 +# option transport-type ib-verbs # for ib-verbs transport + option remote-host 127.0.0.1 option remote-subvolume ra6 end-volume @@ -70,18 +70,18 @@ volume client7 type protocol/client option transport-type tcp # for TCP/IP transport # option transport-type ib-sdp # for Infiniband transport -# option transport-type ib-verbs # for ib-verbs transport - option remote-host 127.0.0.1 +# option transport-type ib-verbs # for ib-verbs transport + option remote-host 127.0.0.1 option remote-subvolume ra7 end-volume -# 8th client +# 8th client volume client8 type protocol/client option transport-type tcp # for TCP/IP transport # option transport-type ib-sdp # for Infiniband transport -# option transport-type ib-verbs # for ib-verbs transport - option remote-host 127.0.0.1 +# option transport-type ib-verbs # for ib-verbs transport + option remote-host 127.0.0.1 option remote-subvolume ra8 end-volume diff --git a/doc/qa/qa-high-avail-client.vol b/doc/qa/legacy/qa-high-avail-client.vol index 69cb8dd30f1..69cb8dd30f1 100644 --- a/doc/qa/qa-high-avail-client.vol +++ b/doc/qa/legacy/qa-high-avail-client.vol diff --git a/doc/qa/qa-high-avail-server.vol b/doc/qa/legacy/qa-high-avail-server.vol index 3556b9dae99..784e8d208e4 100644 --- a/doc/qa/qa-high-avail-server.vol +++ b/doc/qa/legacy/qa-high-avail-server.vol @@ -110,7 +110,7 @@ volume server1 option transport.socket.listen-port 7001 option auth.addr.server1-posix1.allow * option auth.addr.server1-ns1.allow * - option auth.addr.server1-iot.allow * + option auth.addr.server1-iot.allow * end-volume @@ -225,7 +225,7 @@ volume server2 option transport.socket.listen-port 7002 option auth.addr.server2-posix2.allow * option auth.addr.server2-ns2.allow * - option auth.addr.server2-iot.allow * + option auth.addr.server2-iot.allow * end-volume # == server 3 == @@ -339,6 +339,6 @@ volume server3 option transport.socket.listen-port 7003 option auth.addr.server3-posix3.allow * option auth.addr.server3-ns3.allow * - option auth.addr.server3-iot.allow * + option auth.addr.server3-iot.allow * end-volume diff --git a/doc/qa/qa-server.vol b/doc/qa/legacy/qa-server.vol index 1c245c324ad..d948f701f1b 100644 --- a/doc/qa/qa-server.vol +++ b/doc/qa/legacy/qa-server.vol @@ -1,5 +1,5 @@ # This spec file should be used for testing before any release -# +# # Namespace posix volume brick-ns diff --git a/doc/user-guide/Makefile.am b/doc/user-guide/legacy/Makefile.am index 800e7321d79..b2caabaa2f3 100644 --- a/doc/user-guide/Makefile.am +++ b/doc/user-guide/legacy/Makefile.am @@ -1,3 +1,3 @@ info_TEXINFOS = user-guide.texi -CLEANFILES = *~ +CLEANFILES = *~ DISTCLEANFILES = .deps/*.P *.info *vti diff --git a/doc/user-guide/advanced-stripe.odg b/doc/user-guide/legacy/advanced-stripe.odg Binary files differindex 7686d7091b2..7686d7091b2 100644 --- a/doc/user-guide/advanced-stripe.odg +++ b/doc/user-guide/legacy/advanced-stripe.odg diff --git a/doc/user-guide/advanced-stripe.pdf b/doc/user-guide/legacy/advanced-stripe.pdf Binary files differindex ec8b03dcfbb..ec8b03dcfbb 100644 --- a/doc/user-guide/advanced-stripe.pdf +++ b/doc/user-guide/legacy/advanced-stripe.pdf diff --git a/doc/user-guide/colonO-icon.jpg b/doc/user-guide/legacy/colonO-icon.jpg Binary files differindex 3e66f7a2775..3e66f7a2775 100644 --- a/doc/user-guide/colonO-icon.jpg +++ b/doc/user-guide/legacy/colonO-icon.jpg diff --git a/doc/user-guide/fdl.texi b/doc/user-guide/legacy/fdl.texi index e33c687cdfb..e33c687cdfb 100644 --- a/doc/user-guide/fdl.texi +++ b/doc/user-guide/legacy/fdl.texi diff --git a/doc/user-guide/fuse.odg b/doc/user-guide/legacy/fuse.odg Binary files differindex 61bd103c78b..61bd103c78b 100644 --- a/doc/user-guide/fuse.odg +++ b/doc/user-guide/legacy/fuse.odg diff --git a/doc/user-guide/fuse.pdf b/doc/user-guide/legacy/fuse.pdf Binary files differindex a7d13faff56..a7d13faff56 100644 --- a/doc/user-guide/fuse.pdf +++ b/doc/user-guide/legacy/fuse.pdf diff --git a/doc/user-guide/ha.odg b/doc/user-guide/legacy/ha.odg Binary files differindex e4b8b72d08b..e4b8b72d08b 100644 --- a/doc/user-guide/ha.odg +++ b/doc/user-guide/legacy/ha.odg diff --git a/doc/user-guide/ha.pdf b/doc/user-guide/legacy/ha.pdf Binary files differindex e372c0ab03e..e372c0ab03e 100644 --- a/doc/user-guide/ha.pdf +++ b/doc/user-guide/legacy/ha.pdf diff --git a/doc/user-guide/stripe.odg b/doc/user-guide/legacy/stripe.odg Binary files differindex 79441bf1452..79441bf1452 100644 --- a/doc/user-guide/stripe.odg +++ b/doc/user-guide/legacy/stripe.odg diff --git a/doc/user-guide/stripe.pdf b/doc/user-guide/legacy/stripe.pdf Binary files differindex b94446feb56..b94446feb56 100644 --- a/doc/user-guide/stripe.pdf +++ b/doc/user-guide/legacy/stripe.pdf diff --git a/doc/user-guide/unify.odg b/doc/user-guide/legacy/unify.odg Binary files differindex ccaa9bf16f9..ccaa9bf16f9 100644 --- a/doc/user-guide/unify.odg +++ b/doc/user-guide/legacy/unify.odg diff --git a/doc/user-guide/unify.pdf b/doc/user-guide/legacy/unify.pdf Binary files differindex c22027f66e7..c22027f66e7 100644 --- a/doc/user-guide/unify.pdf +++ b/doc/user-guide/legacy/unify.pdf diff --git a/doc/user-guide/user-guide.info b/doc/user-guide/legacy/user-guide.info index e46645099eb..6a49d078d64 100644 --- a/doc/user-guide/user-guide.info +++ b/doc/user-guide/legacy/user-guide.info @@ -130,7 +130,7 @@ suggestions. A huge thanks to them all. Patrick Negri - for TCP non-blocking connect. http://gluster.org/core-team.php (<list-hacking@gluster.com>) - Gluster + Gluster File: user-guide.info, Node: Introduction, Next: Installation and Invocation, Prev: Acknowledgements, Up: Top @@ -160,15 +160,15 @@ makes them all appear to be a part of the same filesystem. ================= You can reach us through the mailing list *gluster-devel* -(<gluster-devel@nongnu.org>). +(<gluster-devel@nongnu.org>). You can also find many of the developers on IRC, on the `#gluster' -channel on Freenode (<irc.freenode.net>). +channel on Freenode (<irc.freenode.net>). The GlusterFS documentation wiki is also useful: <http://gluster.org/docs/index.php/GlusterFS> - For commercial support, you can contact Gluster at: + For commercial support, you can contact Gluster at: 3194 Winding Vista Common Fremont, CA 94539 @@ -907,7 +907,7 @@ and the client. Whether to make the connection attempt asynchronous. `remote-port <n> (24007)' - Server port to connect to. + Server port to connect to. `remote-host <hostname> *' Hostname or IP address of the server. If the host name resolves to @@ -952,7 +952,7 @@ always best to use `ib-verbs'. Use `ib-sdp' only if you cannot get Whether to make the connection attempt asynchronous. `remote-port <n> (24007)' - Server port to connect to. + Server port to connect to. `remote-host <hostname> *' Hostname or IP address of the server. If the host name resolves to @@ -2057,7 +2057,7 @@ the `--log-file' option (See *note Client::). ======================= `modprobe fuse' fails with: "Unknown symbol in module, or unknown -parameter". +parameter". If you are using fuse-2.6.x on Redhat Enterprise Linux Work Station 4 and Advanced Server 4 with 2.6.9-42.ELlargesmp, 2.6.9-42.ELsmp, diff --git a/doc/user-guide/user-guide.pdf b/doc/user-guide/legacy/user-guide.pdf Binary files differindex ed7bd2a9907..ed7bd2a9907 100644 --- a/doc/user-guide/user-guide.pdf +++ b/doc/user-guide/legacy/user-guide.pdf diff --git a/doc/user-guide/user-guide.texi b/doc/user-guide/legacy/user-guide.texi index f864c186a5b..2d51da022cf 100644 --- a/doc/user-guide/user-guide.texi +++ b/doc/user-guide/legacy/user-guide.texi @@ -23,7 +23,7 @@ Documentation License''. @title GlusterFS 2.0 User Guide [DRAFT] @subtitle January 15, 2008 @author http://gluster.org/core-team.php -@author @email{@b{Gluster}} +@author @email{@b{Gluster}} @page @vskip 0pt plus 1filll @insertcopying @@ -36,78 +36,78 @@ Documentation License''. @insertcopying @menu -* Acknowledgements:: -* Introduction:: -* Installation and Invocation:: -* Concepts:: -* Translators:: -* Usage Scenarios:: -* Troubleshooting:: -* GNU Free Documentation Licence:: -* Index:: +* Acknowledgements:: +* Introduction:: +* Installation and Invocation:: +* Concepts:: +* Translators:: +* Usage Scenarios:: +* Troubleshooting:: +* GNU Free Documentation Licence:: +* Index:: @detailmenu --- The Detailed Node Listing --- Installation and Invocation -* Pre requisites:: -* Getting GlusterFS:: -* Building:: -* Running GlusterFS:: -* A Tutorial Introduction:: +* Pre requisites:: +* Getting GlusterFS:: +* Building:: +* Running GlusterFS:: +* A Tutorial Introduction:: Running GlusterFS -* Server:: -* Client:: +* Server:: +* Client:: Concepts -* Filesystems in Userspace:: -* Translator:: -* Volume specification file:: +* Filesystems in Userspace:: +* Translator:: +* Volume specification file:: Translators -* Storage Translators:: -* Client and Server Translators:: -* Clustering Translators:: -* Performance Translators:: -* Features Translators:: +* Storage Translators:: +* Client and Server Translators:: +* Clustering Translators:: +* Performance Translators:: +* Features Translators:: Storage Translators -* POSIX:: +* POSIX:: Client and Server Translators -* Transport modules:: -* Client protocol:: -* Server protocol:: +* Transport modules:: +* Client protocol:: +* Server protocol:: Clustering Translators -* Unify:: -* Replicate:: -* Stripe:: +* Unify:: +* Replicate:: +* Stripe:: Performance Translators -* Read Ahead:: -* Write Behind:: -* IO Threads:: -* IO Cache:: +* Read Ahead:: +* Write Behind:: +* IO Threads:: +* IO Cache:: -Features Translators +Features Translators -* POSIX Locks:: -* Fixed ID:: +* POSIX Locks:: +* Fixed ID:: Miscellaneous Translators -* ROT-13:: -* Trace:: +* ROT-13:: +* Trace:: @end detailmenu @end menu @@ -120,7 +120,7 @@ Miscellaneous Translators @node Acknowledgements @unnumbered Acknowledgements GlusterFS continues to be a wonderful and enriching experience for all -of us involved. +of us involved. GlusterFS development would not have been possible at this pace if not for our enthusiastic users. People from around the world have @@ -142,7 +142,7 @@ Jacques Mattheij - for Europe mirror. Patrick Negri - for TCP non-blocking connect. @flushright http://gluster.org/core-team.php (@email{list-hacking@@gluster.com}) -@email{@b{Gluster}} +@email{@b{Gluster}} @end flushright @node Introduction @@ -166,7 +166,7 @@ Need for distributed filesystems @end itemize @section Contacting us -You can reach us through the mailing list @strong{gluster-devel} +You can reach us through the mailing list @strong{gluster-devel} (@email{gluster-devel@@nongnu.org}). @cindex GlusterFS mailing list @@ -197,11 +197,11 @@ You can also email us at @email{support@@gluster.com}. @chapter Installation and Invocation @menu -* Pre requisites:: -* Getting GlusterFS:: -* Building:: -* Running GlusterFS:: -* A Tutorial Introduction:: +* Pre requisites:: +* Getting GlusterFS:: +* Building:: +* Running GlusterFS:: +* A Tutorial Introduction:: @end menu @node Pre requisites @@ -247,7 +247,7 @@ our patched version of the @acronym{FUSE} kernel module. See Patched FUSE for de @subsection Patched FUSE -The GlusterFS project maintains a patched version of @acronym{FUSE} meant to be used +The GlusterFS project maintains a patched version of @acronym{FUSE} meant to be used with GlusterFS. The patches increase GlusterFS performance. It is recommended that all users use the patched @acronym{FUSE}. @@ -311,7 +311,7 @@ $ cd glusterfs-<version> If you checked out the source from the Arch repository, you'll need to run @command{./autogen.sh} first. Note that you'll need to have -Autoconf and Automake installed for this. +Autoconf and Automake installed for this. Run @command{configure}. @@ -371,8 +371,8 @@ paths with the prefix. @section Running GlusterFS @menu -* Server:: -* Client:: +* Server:: +* Client:: @end menu @node Server @@ -386,7 +386,7 @@ of the GlusterFS server program and all the command-line options accepted by it. @cartouche @table @code Basic Options -@item -f, --volfile=<path> +@item -f, --volfile=<path> Use the volume file as the volume specification. @item -s, --volfile-server=<hostname> @@ -396,7 +396,7 @@ Basic Options Specify the path for the log file. @item -L, --log-level=<level> - Set the log level for the server. Log level should be one of @acronym{DEBUG}, + Set the log level for the server. Log level should be one of @acronym{DEBUG}, @acronym{WARNING}, @acronym{ERROR}, @acronym{CRITICAL}, or @acronym{NONE}. Advanced Options @@ -404,10 +404,10 @@ Advanced Options Run in debug mode. This option sets --no-daemon, --log-level to DEBUG and --log-file to console. -@item -N, --no-daemon +@item -N, --no-daemon Run glusterfsd as a foreground process. -@item -p, --pid-file=<path> +@item -p, --pid-file=<path> Path for the @acronym{PID} file. @item --volfile-id=<key> @@ -423,13 +423,13 @@ Advanced Options Add/override a translator option for a volume with specified value. Miscellaneous Options -@item -?, --help +@item -?, --help Show this help text. -@item --usage +@item --usage Display a short usage message. -@item -V, --version +@item -V, --version Show version information. @end table @end cartouche @@ -464,7 +464,7 @@ The command-line options are detailed below. @table @code Basic Options -@item -f, --volfile=<path> +@item -f, --volfile=<path> Use the volume file as the volume specification. @item -s, --volfile-server=<hostname> @@ -474,7 +474,7 @@ Basic Options Specify the path for the log file. @item -L, --log-level=<level> - Set the log level for the server. Log level should be one of @acronym{DEBUG}, + Set the log level for the server. Log level should be one of @acronym{DEBUG}, @acronym{WARNING}, @acronym{ERROR}, @acronym{CRITICAL}, or @acronym{NONE}. Advanced Options @@ -482,10 +482,10 @@ Advanced Options Run in debug mode. This option sets --no-daemon, --log-level to DEBUG and --log-file to console. -@item -N, --no-daemon +@item -N, --no-daemon Run @command{glusterfs} as a foreground process. -@item -p, --pid-file=<path> +@item -p, --pid-file=<path> Path for the @acronym{PID} file. @item --volfile-id=<key> @@ -512,14 +512,14 @@ Advanced Options automatically if kernel supports big writes (>= 2.6.26). @item -e, --entry-timeout=<n> - Entry timeout for directory entries in the kernel, in seconds. + Entry timeout for directory entries in the kernel, in seconds. Defaults to 1 second. Missellaneous Options -@item -?, --help +@item -?, --help Show this help information. -@item -V, --version +@item -V, --version Show version information. @end table @end cartouche @@ -527,7 +527,7 @@ Missellaneous Options @node A Tutorial Introduction @section A Tutorial Introduction -This section will show you how to quickly get GlusterFS up and running. We'll +This section will show you how to quickly get GlusterFS up and running. We'll configure GlusterFS as a simple network filesystem, with one server and one client. In this mode of usage, GlusterFS can serve as a replacement for NFS. @@ -545,18 +545,18 @@ be run on the server will be shown with the prompt: Our goal is to make a directory on the @emph{server} (say, @command{/export}) accessible to the @emph{client}. -First of all, get GlusterFS installed on both the machines, as described in the +First of all, get GlusterFS installed on both the machines, as described in the previous sections. Make sure you have the @acronym{FUSE} kernel module loaded. You -can ensure this by running: +can ensure this by running: @example [root@@server]# modprobe fuse @end example Before we can run the GlusterFS client or server programs, we need to write -two files called @emph{volume specifications} (equivalently refered to as @emph{volfiles}). +two files called @emph{volume specifications} (equivalently refered to as @emph{volfiles}). The volfile describes the @emph{translator tree} on a node. The next chapter will -explain the concepts of `translator' and `volume specification' in detail. For now, +explain the concepts of `translator' and `volume specification' in detail. For now, just assume that the volfile is like an NFS @command{/etc/export} file. On the server, create a text file somewhere (we'll assume the path @@ -572,7 +572,7 @@ end-volume volume server type protocol/server subvolumes colon-o - option transport-type tcp + option transport-type tcp option auth.addr.colon-o.allow * end-volume @end example @@ -625,9 +625,9 @@ working as a network file system. @chapter Concepts @menu -* Filesystems in Userspace:: -* Translator:: -* Volume specification file:: +* Filesystems in Userspace:: +* Translator:: +* Volume specification file:: @end menu @node Filesystems in Userspace @@ -639,16 +639,16 @@ is a kernel module/library that allows us to write a filesystem completely in userspace. @acronym{FUSE} consists of a kernel module which interacts with the userspace -implementation using a device file @code{/dev/fuse}. When a process +implementation using a device file @code{/dev/fuse}. When a process makes a syscall on a @acronym{FUSE} filesystem, @acronym{VFS} hands the request to the @acronym{FUSE} module, which writes the request to @code{/dev/fuse}. The userspace implementation polls @code{/dev/fuse}, and when a request arrives, processes it and writes the result back to @code{/dev/fuse}. The kernel then -reads from the device file and returns the result to the user process. +reads from the device file and returns the result to the user process. In case of GlusterFS, the userspace program is the GlusterFS client. The control flow is shown in the diagram below. The GlusterFS client -services the request by sending it to the server, which in turn +services the request by sending it to the server, which in turn hands it to the local @acronym{POSIX} filesystem. @center @image{fuse,44pc,,,.pdf} @@ -752,7 +752,7 @@ or ``forty-two''. line is considered the value; it is up to the translator to parse it. @item @emph{subvolume1}, @emph{subvolume2}, @dots{} - Volume names of sub-volumes. The sub-volumes must already have been defined earlier + Volume names of sub-volumes. The sub-volumes must already have been defined earlier in the file. @end table @@ -797,11 +797,11 @@ end-volume @chapter Translators @menu -* Storage Translators:: -* Client and Server Translators:: -* Clustering Translators:: -* Performance Translators:: -* Features Translators:: +* Storage Translators:: +* Client and Server Translators:: +* Clustering Translators:: +* Performance Translators:: +* Features Translators:: * Miscellaneous Translators:: @end menu @@ -823,12 +823,12 @@ Other storage backends are planned for the future. One of the possibilities is a Amazon S3 translator. Amazon S3 is an unlimited online storage service accessible through a web services @acronym{API}. The S3 translator will allow you to access the storage as a normal @acronym{POSIX} filesystem. -@footnote{Some more discussion about this can be found at: +@footnote{Some more discussion about this can be found at: http://developer.amazonwebservices.com/connect/message.jspa?messageID=52873} @menu -* POSIX:: +* POSIX:: * BDB:: @end menu @@ -843,14 +843,14 @@ filesystem as its ``backend'' to actually store files and directories. This can be any filesystem that supports extended attributes (@acronym{EXT3}, ReiserFS, @acronym{XFS}, ...). Extended attributes are used by some translators to store metadata, for -example, by the replicate and stripe translators. See +example, by the replicate and stripe translators. See @ref{Replicate} and @ref{Stripe}, respectively for details. @cartouche @table @code @item directory <path> The directory on the local filesystem which is to be used for storage. -@end table +@end table @end cartouche @node BDB @@ -862,7 +862,7 @@ type storage/bdb The @command{BDB} translator uses a @acronym{Berkeley DB} database as its ``backend'' to actually store files as key-value pair in the database and directories as regular @acronym{POSIX} directories. Note that @acronym{BDB} -does not provide extended attribute support for regular files. Do not use +does not provide extended attribute support for regular files. Do not use @acronym{BDB} as storage translator while using any translator that demands extended attributes on ``backend''. @@ -892,9 +892,9 @@ translator tree over the network or access a remote GlusterFS server. These two translators implement GlusterFS's network protocol. @menu -* Transport modules:: -* Client protocol:: -* Server protocol:: +* Transport modules:: +* Client protocol:: +* Server protocol:: @end menu @node Transport modules @@ -962,7 +962,7 @@ This module accepts the same options as @command{tcp} @cindex infiniband transport -InfiniBand is a scalable switched fabric interconnect mechanism +InfiniBand is a scalable switched fabric interconnect mechanism primarily used in high-performance computing. InfiniBand can deliver data throughput of the order of 10 Gbit/s, with latencies of 4-5 ms. @@ -970,7 +970,7 @@ The @command{ib-verbs} transport accesses the InfiniBand hardware through the ``verbs'' @acronym{API}, which is the lowest level of software access possible and which gives the highest performance. On InfiniBand hardware, it is always best to use @command{ib-verbs}. Use @command{ib-sdp} only if you cannot get -@command{ib-verbs} working for some reason. +@command{ib-verbs} working for some reason. The @command{ib-verbs} client module accepts the following options: @@ -1049,7 +1049,7 @@ translator tree. @item transport-type [tcp,ib-sdp,ib-verbs] (tcp) The transport type to use. You should use the client versions of all the -transport modules (@command{tcp}, @command{ib-sdp}, +transport modules (@command{tcp}, @command{ib-sdp}, @command{ib-verbs}). @item remote-subvolume <volume_name> * The name of the volume on the remote host to attach to. Note that @@ -1075,7 +1075,7 @@ remote GlusterFS clients. @table @code @item client-volume-filename <path> (<CONFDIR>/glusterfs-client.vol) The volume specification file to use for the client. This is the file the -client will receive when it is invoked with the @command{--server} option +client will receive when it is invoked with the @command{--server} option (@ref{Client}). @item transport-type [tcp,ib-verbs,ib-sdp] (tcp) @@ -1106,9 +1106,9 @@ translator allows a file to be spread across many server nodes. The following se look at each of these translators in detail. @menu -* Unify:: -* Replicate:: -* Stripe:: +* Unify:: +* Replicate:: +* Stripe:: @end menu @node Unify @@ -1121,7 +1121,7 @@ type cluster/unify The unify translator presents a `unified' view of all its sub-volumes. That is, it makes the union of all its sub-volumes appear as a single volume. It is the -unify translator that gives GlusterFS the ability to access an arbitrarily +unify translator that gives GlusterFS the ability to access an arbitrarily large amount of storage. For unify to work correctly, certain invariants need to be maintained across @@ -1144,7 +1144,7 @@ Looking at the second requirement, you might wonder how one can accomplish storing redundant copies of a file, if no file can exist multiple times. To answer, we must remember that these invariants are from @emph{unify's perspective}. A translator such as replicate at a lower -level in the translator tree than unify may subvert this picture. +level in the translator tree than unify may subvert this picture. The first invariant might seem quite tedious to ensure. We shall see later that this is not so, since unify's @emph{self-heal} mechanism @@ -1241,8 +1241,8 @@ are allowed. For example: @command{option alu.limits.min-free-disk 5GB}. @item alu.read-usage.exit-threshold <%> (5) @item alu.open-files-usage.entry-threshold <n> (1000) @item alu.open-files-usage.exit-threshold <n> (100) -@item alu.limits.min-free-disk <%> -@item alu.limits.max-open-files <n> +@item alu.limits.min-free-disk <%> +@item alu.limits.max-open-files <n> @end table @end cartouche @@ -1259,7 +1259,7 @@ files are mostly similar in size and I/O access pattern, this scheduler is a good choice. RR scheduler checks for free disk space on the server before scheduling, so you can know when to add another server node. The default value of min-free-disk is 5% and is -checked on file creation calls, with atleast 10 seconds (by default) +checked on file creation calls, with atleast 10 seconds (by default) elapsing between two checks. Options: @@ -1315,7 +1315,7 @@ than a specified amount (5% by default) then @acronym{NUFA} schedules files among the other child volumes in a round-robin fashion. @acronym{NUFA} is named after the similar strategy used for memory access, -@acronym{NUMA}@footnote{Non-Uniform Memory Access: +@acronym{NUMA}@footnote{Non-Uniform Memory Access: @indicateurl{http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access}}. @cartouche @@ -1325,7 +1325,7 @@ Minimum disk space that must be free (local or remote) for @acronym{NUFA} to sch file to it. @item nufa.refresh-interval <t> (10 seconds) Time between two successive free disk space checks. -@item nufa.local-volume-name <volume> +@item nufa.local-volume-name <volume> The name of the volume corresponding to the local system. This volume must be one of the children of the unify volume. This option is mandatory. @end table @@ -1397,13 +1397,13 @@ end-volume @end example This sample configuration will replicate all directories and files on -brick1, brick2 and brick3. +brick1, brick2 and brick3. All the read operations happen from the first alive child. If all the three sub-volumes are up, reads will be done from brick1; if brick1 is down read will be done from brick2. In case read() was being done on brick1 and it goes down, replicate transparently falls back to -brick2. +brick2. The next release of GlusterFS will add the following features: @itemize @@ -1496,7 +1496,7 @@ type cluster/stripe The stripe translator distributes the contents of a file over its sub-volumes. It does this by creating a file equal in size to the total size of the file on each of its sub-volumes. It then writes only -a part of the file to each sub-volume, leaving the rest of it empty. +a part of the file to each sub-volume, leaving the rest of it empty. These empty regions are called `holes' in Unix terminology. The holes do not consume any disk space. @@ -1504,14 +1504,14 @@ The diagram below makes this clear. @center @image{stripe,44pc,,,.pdf} -You can configure stripe so that only filenames matching a pattern -are striped. You can also configure the size of the data to be stored +You can configure stripe so that only filenames matching a pattern +are striped. You can also configure the size of the data to be stored on each sub-volume. @cartouche @table @code @item block-size <pattern>:<size> (*:0 no striping) -Distribute files matching @command{<pattern>} over the sub-volumes, +Distribute files matching @command{<pattern>} over the sub-volumes, storing at least @command{<size>} on each sub-volume. For example, @example @@ -1530,9 +1530,9 @@ different sizes for different file name patterns. @section Performance Translators @menu -* Read Ahead:: -* Write Behind:: -* IO Threads:: +* Read Ahead:: +* Write Behind:: +* IO Threads:: * IO Cache:: * Booster:: @end menu @@ -1547,9 +1547,9 @@ type performance/read-ahead The read-ahead translator pre-fetches data in advance on every read. This benefits applications that mostly process files in sequential order, since the next block of data will already be available by the time the -application is done with the current one. +application is done with the current one. -Additionally, the read-ahead translator also behaves as a read-aggregator. +Additionally, the read-ahead translator also behaves as a read-aggregator. Many small read operations are combined and issued as fewer, larger read requests to the server. @@ -1557,7 +1557,7 @@ Read-ahead deals in ``pages'' as the unit of data fetched. The page size is configurable, as is the ``page count'', which is the number of pages that are pre-fetched. -Read-ahead is best used with InfiniBand (using the ib-verbs transport). +Read-ahead is best used with InfiniBand (using the ib-verbs transport). On FastEthernet and Gigabit Ethernet networks, GlusterFS can achieve the link-maximum throughput even without read-ahead, making it quite superflous. @@ -1577,7 +1577,7 @@ The unit of data that is pre-fetched. The number of pages that are pre-fetched. @item force-atime-update [on|off|yes|no] (off|no) Whether to force an access time (atime) update on the file on every read. Without -this, the atime will be slightly imprecise, as it will reflect the time when +this, the atime will be slightly imprecise, as it will reflect the time when the read-ahead translator read the data, not when the application actually read it. @end table @end cartouche @@ -1596,7 +1596,7 @@ write-behind translator, successive write requests can be pipelined. This mode of write-behind operation is best used on the client side, to enable decreased write latency for the application. -The write-behind translator can also aggregate write requests. If the +The write-behind translator can also aggregate write requests. If the @command{aggregate-size} option is specified, then successive writes upto that size are accumulated and written in a single operation. This mode of operation is best used on the server side, as this will decrease the disk's head movement @@ -1659,7 +1659,7 @@ It caches data upto @command{cache-size} bytes. The cache is maintained as a prioritized least-recently-used (@acronym{LRU}) list, with priorities determined by user-specified patterns to match filenames. -When the IO cache translator detects a write operation, the +When the IO cache translator detects a write operation, the cache for that file is flushed. The IO cache translator periodically verifies the consistency of @@ -1715,11 +1715,11 @@ can start your application as: The booster translator accepts no options. @node Features Translators -@section Features Translators +@section Features Translators @menu -* POSIX Locks:: -* Fixed ID:: +* POSIX Locks:: +* Fixed ID:: @end menu @node POSIX Locks @@ -1783,8 +1783,8 @@ The @acronym{GID} to send to the server @section Miscellaneous Translators @menu -* ROT-13:: -* Trace:: +* ROT-13:: +* Trace:: @end menu @node ROT-13 @@ -1799,7 +1799,7 @@ contents using the @acronym{ROT-13} algorithm. @acronym{ROT-13} is a trivial algorithm that rotates each alphabet by thirteen places. Thus, 'A' becomes 'N', 'B' becomes 'O', and 'Z' becomes 'M'. -It goes without saying that you shouldn't use this translator if you need +It goes without saying that you shouldn't use this translator if you need @emph{real} encryption (a future release of GlusterFS will have real encryption translators). @@ -1816,7 +1816,7 @@ Whether to decrypt on read @subsection Trace @cindex trace (translator) @example -type debug/trace +type debug/trace @end example The trace translator is intended for debugging purposes. When loaded, it @@ -1827,23 +1827,23 @@ level of DEBUG (See @ref{Running GlusterFS}) for trace to work. Sample trace output (lines have been wrapped for readability): @cartouche @example -2007-10-30 00:08:58 D [trace.c:1579:trace_opendir] trace: callid: 68 -(*this=0x8059e40, loc=0x8091984 @{path=/iozone3_283, inode=0x8091f00@}, +2007-10-30 00:08:58 D [trace.c:1579:trace_opendir] trace: callid: 68 +(*this=0x8059e40, loc=0x8091984 @{path=/iozone3_283, inode=0x8091f00@}, fd=0x8091d50) -2007-10-30 00:08:58 D [trace.c:630:trace_opendir_cbk] trace: +2007-10-30 00:08:58 D [trace.c:630:trace_opendir_cbk] trace: (*this=0x8059e40, op_ret=4, op_errno=1, fd=0x8091d50) -2007-10-30 00:08:58 D [trace.c:1602:trace_readdir] trace: callid: 69 +2007-10-30 00:08:58 D [trace.c:1602:trace_readdir] trace: callid: 69 (*this=0x8059e40, size=4096, offset=0 fd=0x8091d50) -2007-10-30 00:08:58 D [trace.c:215:trace_readdir_cbk] trace: +2007-10-30 00:08:58 D [trace.c:215:trace_readdir_cbk] trace: (*this=0x8059e40, op_ret=0, op_errno=0, count=4) -2007-10-30 00:08:58 D [trace.c:1624:trace_closedir] trace: callid: 71 +2007-10-30 00:08:58 D [trace.c:1624:trace_closedir] trace: callid: 71 (*this=0x8059e40, *fd=0x8091d50) -2007-10-30 00:08:58 D [trace.c:809:trace_closedir_cbk] trace: +2007-10-30 00:08:58 D [trace.c:809:trace_closedir_cbk] trace: (*this=0x8059e40, op_ret=0, op_errno=1) @end example @end cartouche @@ -1871,7 +1871,7 @@ scheduling on a single storage volume. Alternatively users can choose to have two separate volumes and hence two mount points, but the applications may demand a single storage system to host both. -This document explains how to mix file level scheduling with stripe. +This document explains how to mix file level scheduling with stripe. @subsection Configuration Brief @@ -1904,17 +1904,17 @@ addresses / access control fields to match your environment. type storage/posix option directory /export/for-unify end-volume - + volume posix-stripe type storage/posix option directory /export/for-stripe end-volume - + volume posix-namespace type storage/posix option directory /export/for-namespace end-volume - + volume server type protocol/server option transport-type tcp @@ -1963,7 +1963,7 @@ addresses / access control fields to match your environment. option remote-host 192.168.1.4 option remote-subvolume posix-unify end-volume - + volume client-stripe-1 type protocol/client option transport-type tcp @@ -1991,13 +1991,13 @@ addresses / access control fields to match your environment. option remote-host 192.168.1.4 option remote-subvolume posix-stripe end-volume - + volume unify type cluster/unify option scheduler rr subvolumes cluster-unify-1 cluster-unify-2 cluster-unify-3 cluster-unify-4 end-volume - + volume stripe type cluster/stripe option block-size *.img:2MB # All files ending with .img are striped with 2MB stripe block size. @@ -2046,13 +2046,13 @@ concludes with the suggested procedure to report bugs in GlusterFS. @subsection Server errors @example -glusterfsd: FATAL: could not open specfile: +glusterfsd: FATAL: could not open specfile: '/etc/glusterfs/glusterfsd.vol' @end example -The GlusterFS server expects the volume specification file to be +The GlusterFS server expects the volume specification file to be at @command{/etc/glusterfs/glusterfsd.vol}. The example -specification file will be installed as +specification file will be installed as @command{/etc/glusterfs/glusterfsd.vol.sample}. You need to edit it and rename it, or provide a different specification file using the @command{--spec-file} command line option (See @ref{Server}). @@ -2060,7 +2060,7 @@ the @command{--spec-file} command line option (See @ref{Server}). @vskip 4ex @example -gf_log_init: failed to open logfile "/usr/var/log/glusterfs/glusterfsd.log" +gf_log_init: failed to open logfile "/usr/var/log/glusterfs/glusterfsd.log" (Permission denied) @end example @@ -2072,7 +2072,7 @@ file using the @command{--log-file} option (See @ref{Server}). @subsection Client errors @example -fusermount: failed to access mountpoint /mnt: +fusermount: failed to access mountpoint /mnt: Transport endpoint is not connected @end example @@ -2114,7 +2114,7 @@ port instead. @vskip 4ex @example -gf_log_init: failed to open logfile "/usr/var/log/glusterfs/glusterfs.log" +gf_log_init: failed to open logfile "/usr/var/log/glusterfs/glusterfs.log" (Permission denied) @end example diff --git a/doc/user-guide/xlator.odg b/doc/user-guide/legacy/xlator.odg Binary files differindex 179a65f6e26..179a65f6e26 100644 --- a/doc/user-guide/xlator.odg +++ b/doc/user-guide/legacy/xlator.odg diff --git a/doc/user-guide/xlator.pdf b/doc/user-guide/legacy/xlator.pdf Binary files differindex a07e14d67d2..a07e14d67d2 100644 --- a/doc/user-guide/xlator.pdf +++ b/doc/user-guide/legacy/xlator.pdf |