summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* extras/glusterfs-volgen: Make the script more user-friendly.Vikas Gorur2009-11-131-30/+57
| | | | | | | | | | | | | Error messages now print more detail. Details of export/mount files written is also printed. Also adds a new option '--version'. Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 343 (Placeholder bug for adding volgen into rpm, bdb makefile changes, etc) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=343
* cluster/afr: Fix self-heal loop driver termination logic.Vikas Gorur2009-11-131-7/+19
| | | | | | | | Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 320 (Improve self-heal performance) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=320
* cluster/afr: Ensure directory contents are in sync during opendir.Vikas Gorur2009-11-135-10/+281
| | | | | | | | | | | | | | | | | | | | | | The problem: If some files on the first subvolume disappeared without leaving a trace in the entry changelog (this can happen, for example, when an fsck has deleted files or when a hard drive is replaced), those files would never be self-healed even though they would be present on the second subvolume. This is because readdir is sent only to the first subvolume, and since the files don't appear in the directory listing, no lookup would ever be sent on them. This patch fixes this problem by doing a readdir on all the subvolumes during the first opendir on a directory inode. If a discrepancy in the contents is detected, entry self-heal in a special "force merge" mode is triggered on that directory. Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 249 (Self heal of a file that does not exist on the first subvolume) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=249
* cluster/afr: Refactored inode context bitmasks.Vikas Gorur2009-11-131-6/+10
| | | | | | | | | | | Defined symbolic constants for the bit masks and made 'split-brain' a single bit field in the ctx. Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 249 (Self heal of a file that does not exist on the first subvolume) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=249
* mount/fuse: Do readdirp in fuse_readdir.Vikas Gorur2009-11-131-2/+2
| | | | | | | | | | | Do the readdirp FOP in fuse_readdir. This is needed because dht_readdir is not "reliable", whereas dht_readdirp is. Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 249 (Self heal of a file that does not exist on the first subvolume) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=249
* cluster/dht: Do readdir in dht_readdir instead of readdirpVikas Gorur2009-11-131-1/+1
| | | | | | | | | | | | The readdir call will not be used by applications (fuse will only ever send readdirp), but it will be used by afr to do directory self-heal at the time of opendir. Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 249 (Self heal of a file that does not exist on the first subvolume) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=249
* fix a crash in debug/traceAmar Tumballi2009-11-131-4/+4
| | | | | | | | | | | stat structure (which is an argument to function) was getting freed instead of string which actually should have freed. Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 378 (trace segfault in trace_create_cbk) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=378
* protoocl/client: file directory reopen supportAnand Avati2009-11-132-117/+631
| | | | | | | | | | | | reopen files and directories which were open before a disconnection after reconnecting. operations on files/directories which could not be opened continue to return EBADFD Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
* protocol/client: whitespace cleanupAnand Avati2009-11-132-3631/+3631
| | | | | | | | Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
* cluster/stripe: Initialize frame->local before checking for directory or ↵vinayak hegde2009-11-131-18/+22
| | | | | | | | | | regular files. Signed-off-by: Vinayak Hegde <vinayak@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 368 (setattr on a non-regular file makes glusterfs crash) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=368
* cluster/stripe: Set local->inode value before referring it.vinayak hegde2009-11-121-1/+7
| | | | | | | | Signed-off-by: Vinayak Hegde <vinayak@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 362 (GlusterFS crash while doing mkdir in stripe setup) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=362
* cluster/stripe: local was not being set in stripe_mknod_ifreg_setxattr_cbk()Vijay Bellur2009-11-121-0/+2
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 367 (GlusterFS crash while doing mknod in stripe setup) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=367
* core: Replace inode_search with inode_grep in inode_from_pathShehjar Tikoo2009-11-121-1/+1
| | | | | | | | | | | This fixes a situation where the inode_from_path fails to return an inode even though the inode exists in the table. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 315 (generation number support) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
* Add unhashed-sticky-bit option to volume_options structureSachidananda2009-11-121-0/+3
| | | | | | | | Signed-off-by: Sachidananda <sac@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 365 (unhashed-sticky-bit is not recognized) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=365
* Add glusterfs-volgen to master, change fusermount options and other changes ↵Pavan Sondur2009-11-115-14/+17
| | | | | | | | | | | | | | | | to rpm spec file. The patch has the following changes: * Rename glusterfs-volgen.py and include it in the rpm spec file * Enable fusermount by default. Change fusermount configure option from disable to enable. * Remove BDB from configure.ac, essentially removing it from the normal build. * Remove all dependencies on fuse in the rpm spec file. Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 343 (Placeholder bug for adding volgen into rpm, bdb makefile changes, etc) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=343
* performance/stat-prefetch: In lookup_cbk do not set error no to EINVAL, when ↵vinayak hegde2009-11-051-3/+0
| | | | | | | | | | inode_ctx_get returns -1. Signed-off-by: vinayak <vinayak@laptop.(none)> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 360 (All fop fails when stat-prefetch is loaded on afr.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=360
* cluster/afr: In fop structure afr_readdirp is not correctly registered.vinayak hegde2009-11-051-1/+1
| | | | | | | | Signed-off-by: Vinayak Hegde <vinayak@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 360 (All fop fails when stat-prefetch is loaded on afr.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=360
* performance/stat-prefetch: In sp_readdir_cbk op_ret value is not handled.vinayak hegde2009-11-051-0/+4
| | | | | | | | Signed-off-by: Vinayak Hegde <vinayak@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 360 (All fop fails when stat-prefetch is loaded on afr.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=360
* libglusterfs/src/gf-dirent.c: In gf_dirent_nb structure d_name should be ↵vinayak hegde2009-11-051-1/+1
| | | | | | | | | | char array of size 1. Signed-off-by: Vinayak Hegde <vinayak@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 360 (All fop fails when stat-prefetch is loaded on afr.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=360
* Do not abort make install if a chown on the fuser-mount script does not succeed.Pavan Sondur2009-11-031-1/+1
| | | | | | | | Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 343 (Placeholder bug for adding volgen into rpm, bdb makefile changes, etc) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=343
* Remove fuse_lowlevel.h from xlator.h in libglusterfs.Pavan Sondur2009-11-032-4/+2
| | | | | | | | Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 343 (Placeholder bug for adding volgen into rpm, bdb makefile changes, etc) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=343
* libglusterfsclient: Dont alloc root inode contextShehjar Tikoo2009-11-031-1/+0
| | | | | | | | | | | | ....because the lookup on root inode done a few lines before this call already allocates an inode context. This one just over-writes that context, results in invalidation of the cached iattrs. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 354 (Stale file handle on unfs3 booster) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=354
* libglusterfsclient: Prevent root inode number clobberingShehjar Tikoo2009-11-031-19/+29
| | | | | | | | Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 354 (Stale file handle on unfs3 booster) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=354
* cluster/afr: Bail out of the self-heal driver loops as soon as possibleVikas Gorur2009-11-031-4/+4
| | | | | | | | | | | | Don't wait for the next recursive call to sh_{full,diff}_loop_driver to decide that we've reached the end of file, as the frame could have been destroyed by that time (if subvolumes are posix). Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 320 (Improve self-heal performance) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=320
* Remove unnecessary log message. It also accesses a freed lock after an 'unlock'.Pavan Sondur2009-11-031-6/+0
| | | | | | | | Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 222 (Enhance Internal locks to support multilple domains and rewrite inodelks) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=222
* transport/name.c: refine the address resolution logic when listen-host is ↵Corentin Chary2009-11-032-6/+35
| | | | | | | | | | | | | | | | | not specified. - when listen-host is not specified and there are are no interfaces having adresses belonging to the address-family specified, listen at 0.0.0.0/::0. - this patch is necessary since with AI_ADDRCONFIG, getaddrinfo fails if there are no active interfaces for the address family specified and when listen-host is specified we still want the functionality provided with usage of AI_ADDRCONFIG. Signed-off-by: Corentin Chary <corentin.chary@gmail.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 339 (glusterfsd fails to start when there are no active interfaces having address in the address family configured.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=339
* Wrong variable is checked after stat call.Sachidananda2009-11-031-2/+2
| | | | | | | | Signed-off-by: Sachidananda <sac@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 355 (Wrong variable checked after a stat call) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=355
* configure.ac: Before checking for libglusterfsclient ↵vinayak hegde2009-11-031-1/+1
| | | | | | | | | | BUILD_LIBGLUSTERFSCLIENT should be initialized to no. Signed-off-by: Vinayak <vinayak@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 353 (./configure adds libglusterfsclient when it shouldn't) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=353
* storage/posix: Changed error message displayed for option background-unlink.Vijay Bellur2009-11-021-1/+1
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 352 (Wrong message logged for option `background-unlink') URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=352
* features/locks: Do not try to set value in dict when lookup has failed.Vijay Bellur2009-11-011-35/+42
| | | | | | | | | | | | | | lock-count was being set without checking for op_ret from lookup. This would cause a lot of Critical messages in the log as dict would be NULL in case of a lookup failure. Also, removed some trailing white spaces and did some minor re-factoring. Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 306 (Enhance locks to aid debugging) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=306
* cluster/afr: Don't try to self-heal if there are locks heldVikas Gorur2009-10-302-1/+18
| | | | | | | | | | | If the inodelk_count or entrylk_count is positive on a file/directory, don't try to do self-heal on it. Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 326 ([2.0.8rc9] Spurious self-heal) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=326
* volgen: remove trailing whitespaceCorentin Chary2009-10-301-28/+28
| | | | | Signed-off-by: Corentin Chary <corentin.chary@gmail.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* volgen: Add conf-dir optionCorentin Chary2009-10-301-1/+6
| | | | | | | | Add a conf-dir option to change the output directory for generated files. Signed-off-by: Corentin Chary <corentin.chary@gmail.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* core: Use parent for condition to create dentry not nameShehjar Tikoo2009-10-301-1/+1
| | | | | | | | Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 348 (touch on booster segfaults) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=348
* booster: Must check errno for error number not return valueShehjar Tikoo2009-10-301-3/+3
| | | | | | | | Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 346 (booster returns success on failed getxattr and lgetxattr) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=346
* core: Check for NULL to avoid segfaultShehjar Tikoo2009-10-301-0/+3
| | | | | | | | | | A segfault as a result of this was observed during tests. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 348 (touch on booster segfaults) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=348
* booster, libglusterfsclient: Support samba specific relative pathsShehjar Tikoo2009-10-303-166/+181
| | | | | | | | Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 158 (libglusterfsclient: Applications are restricted to using absolute paths) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=158
* iobuf: initialize size without 4KB paddingAnand Avati2009-10-301-1/+1
| | | | | | | | | | | since new fuse bridge takes care of landing write buffers to aligned iobufs and the 4KB header padding is no more necessary Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 315 (generation number support) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
* glusterfsd: whitespace cleanupAnand Avati2009-10-301-957/+957
| | | | | | | | Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 315 (generation number support) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
* libglusterfsclient: don't do inode_link on root inode.Raghavendra G2009-10-301-1/+4
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 348 (touch on booster segfaults) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=348
* performance/io-cache: change the data-types to be big enough to hold size of ↵Raghavendra G2009-10-302-5/+5
| | | | | | | | | data flushed. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 335 (Io-cache optimization) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
* Fix logic while granting blocked entrylks, which could run into an infinite ↵Pavan Sondur2009-10-301-5/+6
| | | | | | | | | | loop. Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 222 (Enhance Internal locks to support multilple domains and rewrite inodelks) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=222
* call-stub: fix leak of fxattrop dictionaryAnand Avati2009-10-291-1/+1
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 315 (generation number support) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
* protocol/server: fix leak of xattrop dictionaryAnand Avati2009-10-291-1/+3
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 315 (generation number support) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
* cluster/afr: Move deleted files to /.trash in entry self-heal.Vikas Gorur2009-10-294-33/+226
| | | | | | | | | | | | | | | | | If entry self-heal determines that a file/directory should be deleted from a subvolume, move that entry to a directory called "/.trash" on that subvolume. This is for two reasons: 1) It limits the damage that can be done by a "wrong" entry self-heal. 2) It solves the problem of a to-be-deleted directory not being empty. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 227 (replicate selfheal does not remove directory with contents in it) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=227
* performance/io-cache: change the hash function used for rbtree based hash table.Raghavendra G2009-10-294-12/+32
| | | | | | | | | | | | | | | - the earlier hash function does not distribute pages uniformly for offsets that fit into 32 bits. The reason is that the hash function just xors the contents of the key 4 bytes at a time with the current value of hash. Hence for keys that fit into 32 bits, the hash will be the key itself. Since we are using the rounded_offset (which is a multiple of 128KB) as the key, the key will be exactly divisible by the number of buckets configured (4096) resolving all the pages into the first bucket. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 335 (Io-cache optimization) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
* Remove unnecessary check of xattr_req in lookup.Pavan Sondur2009-10-291-1/+0
| | | | | | | | Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 306 (Enhance locks to aid debugging) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=306
* storage/posix: Serialize do_xattrop.Vikas Gorur2009-10-291-45/+58
| | | | | | | | | | | | | Hold a lock on the inode for the getxattr/add-array/setxattr section since multiple threads can enter into it causing wrong values to be written and triggering spurious replicate self-heal later. Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 326 ([2.0.8rc9] Spurious self-heal) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=326
* storage/posix: Refactor xattropVikas Gorur2009-10-291-122/+64
| | | | | | | | | | Move common code into do_xattrop. Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 326 ([2.0.8rc9] Spurious self-heal) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=326
* protocol/server, mount/fuse: Handle returned inode in create properlyVikas Gorur2009-10-292-6/+32
| | | | | | | | | | | Check if linked_inode is different from returned inode in create, and if so, make the fd point to the correct inode. Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 347 (Assertion failed: inode->ref) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=347