summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* libglusterfsclient: getxattr should return the length of the xattr when size ↵Raghavendra G2009-11-181-11/+19
| | | | | | | | | | is zero Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* libglusterfsclient/ftruncate: add braces to ensure proper evaluation of if ↵Raghavendra G2009-11-181-2/+2
| | | | | | | | | | conditional. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* booster: implement creat64.Raghavendra G2009-11-181-0/+47
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* booster: implement truncate and truncate64.Raghavendra G2009-11-181-0/+76
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* libglusterfsclient: implement glusterfs_truncate.Raghavendra G2009-11-182-1/+117
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* booster: implement ftruncate64.Raghavendra G2009-11-181-1/+33
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* libglusterfsclient: fix libgf_vmp_virtual_path. - This procedure used to ↵Raghavendra G2009-11-181-8/+11
| | | | | | | | | | return garbage as virtual path if the path happens to be exact mount point but without the trailing slash and the vmp had a trailing slash. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* booster: implement getcwd.Raghavendra G2009-11-181-0/+14
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* booster: implement fchdir.Raghavendra G2009-11-181-0/+43
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* booster: implement chdir.Raghavendra G2009-11-181-0/+53
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* libglusterfsclient: implement glusterfs_getcwd.Raghavendra G2009-11-182-0/+78
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* libglusterfsclient: implement glusterfs_fchdir.Raghavendra G2009-11-183-5/+140
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* libglusterfsclient: implement glusterfs_chdir.Raghavendra G2009-11-182-0/+126
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* libglusterfsclient: Support relative paths.Raghavendra G2009-11-181-319/+321
| | | | | | | | | | | - This patch is a port of the patch with same title on 2.0 branch. The original patch was sent by Shehjar <shehjart@gluster.com>. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* Revert "booster, libglusterfsclient: Support samba specific relative paths"Raghavendra G2009-11-183-181/+166
| | | | | | | | | | This reverts commit e6fc0cbe716a18f02891d3911481fdcb121d8840. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 369 (Samba does not work with booster.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
* libglusterfs: Fix error handling in _gf_log.Vikas Gorur2009-11-181-7/+12
| | | | | | | | | | | Unlock the mutex when an error occurs instead of jumping straight to "out". Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 394 (Possible deadlock in _gf_log) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=394
* Upgrade FUSE protocol to rev. 7.13Csaba Henk2009-11-162-5/+17
| | | | | | | | | | | | | 2.6.32 will feature FUSE proto 7.13 which lets us tune the maximal number of in-kernel backgrounded requests via INIT. Hereby we live up to this enhancement. Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 385 (Upgrade FUSE protocol to rev. 7.13) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=385
* transport/ib-verbs: fix race-condition resulting in freeing of transport ↵Raghavendra G2009-11-161-11/+70
| | | | | | | | | | | | | | | | | while it was still being used. - while handling a failed work completion status, the transport is disconnected. But further down in the code, the transport is still used. There can be a possibility that transport might've been freed by the time control reaches this point. More detailed description of events leading to this situation can be found at http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=381 Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 381 (glusterfs crash in ib-verbs) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=381
* transport/ib-verbs: synchronize ib_verbs_recv_completion_proc with ↵Raghavendra G2009-11-162-5/+6
| | | | | | | | | | | | | | | | | | | | ib_verbs_receive so that the former doesn't overwrite the pointer from which latter reads. - There can be a condition wherein, 1. the thread executing ib_verbs_recv_completion_proc (thr 1) stores the buffer pointer and notifies the upper translators about a POLLIN event. 2. the thread waiting for events on socket (thr 2) calls transport_receive, but in ib_verbs_receive it has not still read the data. 3. thr 1 receives work completion event for another work request and overwrites the buffer pointer. 4. thr 2 reads from the new pointer there by missing the data stored in buffer pointed by pointer which got overwritten. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 382 (Data can be lost before it is read in ib_verbs_receive.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=382
* fixing a crash in posix (on 32bit)Amar Tumballi2009-11-161-1/+3
| | | | | | | | | | | | fd_ctx_get () was getting passed with type punned argument, now corrected by passing the right argument, and doing the typecasting later Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 383 (glusterfs server crash on 2.0.8) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=383
* fixes in stripeAmar Tumballi2009-11-161-2/+3
| | | | | | | | | | | | | * fix in stripe readv, so that a read request which falls in two (or more) subvolumes, depending on stripe-size works fine. * fix in stripe_setattr_cbk, where 'postop' stat structure was returning wrong 'st_size'. Signed-off-by: Amar Tumballi <amar@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
* mount/fuse: Assign the right inode to fuse_entry_out in fuse_create_cbk().Vijay Bellur2009-11-161-2/+2
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 380 ([3.0.0 pre1] Crash in fuse_create_cbk) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=380
* protocol/client: preserve open/create flags in fdctx for reopeningAnand Avati2009-11-132-0/+8
| | | | | | | | 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
* Disabled centralized logging by default.Harshavardhana Ranganath2009-11-131-3/+1
| | | | | | | | Signed-off-by: Harshavardhana <harsha@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 366 (Infinite loop with centralized logging.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=366
* performance/quick-read: set return value to zero after successful init.Raghavendra G2009-11-131-0/+2
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 374 (quick read fails to initialize if no options are given) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=374
* mount/fuse: Prevent a hang on the mount point if no server is up when the ↵Pavan Sondur2009-11-131-4/+49
| | | | | | | | | | client is started. Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 373 (Spawn fuse thread after a parent_up and wait and block until child_up) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=373
* 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