summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* build warning fixesAmar Tumballi2009-06-301-2/+2
| | | | | | integer typecast warnings fixed Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* enhancement in write-behindAmar Tumballi2009-06-301-18/+22
| | | | | | | | | Write calls should not be pushed to background only when the mandatory locking is enabled, in all other cases (eg: O_SYNC, O_DIRECT etc), we should not be 'caching' any data, but the calls can be pushed to the background. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* version changes in GIT repo to differentiate between branchesAmar Tumballi2009-06-302-3/+3
| | | | | | | package-version: because master is undergoing changes for 2.1.x release, protocol-version: because of addition of mops 'log' Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* client_xattrop: use dict_allocate_and_serialize during serializing xattrRaghavendra G2009-06-301-10/+7
| | | | | | | | - though the previous commit fixes bug #29, this patch fixes bugs arising in similar situations where xattrop is initiated by xlators other than afr. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* cluster/afr - use different dictionaries for sending xattrop requests to ↵Basavanagowda Kanur2009-06-301-24/+50
| | | | | | | | | | | | | | | | each of the subvolume - This patch fixes bug #29. - Using separate copies of dictionaries also eliminates a potential bug in a setup consisting of afr with a posix and client, each having io-threads on top as children. Since posix_xattrop after performing required operations on the xattr array passed in dictionary, sets the result at the same key and in the same dictionary passed as input argument, there can be race conditions where in the results of the operation on posix-child can be sent to the other child as input argument for xattrop, which ofcourse is wrong. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Fix build problems with various libtool versionsShehjar Tikoo2009-06-292-12/+20
| | | | | | | | | | | | | | | | | | | | We've been facing a problem on some test systems where the booster.so is built by libtool as an executable rather than a dynamically loadable library. This problem is probably caused by it seeing a _init function in the source. This is the name of the libc initiliazation function so it could be the source of the problem. In any case, ld-preloadable libraries must not have a function called _init, instead they need to have __attribute ((constructor)) as the attribute for any and all functions the library wants executed before the program's main(). Our earlier approach was inherently problematic. This commit also cleans up the booster Makefile for better build behaviour. Credit: Harsha. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: Fix glusterfs_mount-vmp search deadlockShehjar Tikoo2009-06-291-11/+20
| | | | | | | | | | | | | It is possible that the only translator in the libglusterfsclient tree is the posix. In that case, inside gluster_init, the graph init routines will need to call lstat on the posix subdirectory. Since even the glusterfs stack is running over booster, those calls will also first require vmp searching. BUT, the vmp lock is the same as the mount lock that was already taken when we entered glusterfs_mount, so a deadlock occurs. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Another attempt to fix 32 and 64 bit interoperabilityShehjar Tikoo2009-06-291-17/+27
| | | | | | | | | | | | With this patch, we might have finally arrived at a solution to the problem of function definition conflicts between our functions and those of libc while over-riding the libc versions. This commit defines functions which do not conflict with libc, then it uses libc's own macro to redirect/rename these functions to the actual sys call names in the binary. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfs-fd: Simplify gf_roundup_power_of_twoShehjar Tikoo2009-06-291-30/+10
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Remove gf_fd_unused_get2Shehjar Tikoo2009-06-292-40/+4
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Add new booster-specific fd-tableShehjar Tikoo2009-06-294-139/+438
| | | | | | | | | | | The reason we need a booster specific fd-table is because the libglusterfs fd-table has come to a point where it is optimized for libglusterfs-style of fd allocations. This conflicts with the way booster requires fds to be allocated so this commit brings in a re-based version of a booster-specific fd-table written by Raghu. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Fix some trivial typos.Erick Tryzelaar2009-06-292-4/+4
| | | | | | | I noticed that there were some minor spelling mistakes/typos in some of the source files. This patch fixes the ones I've found. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Added new options for log-server and log-server-portHarshavardhana Ranganath2009-06-291-2/+16
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* version check between client/server made more specific to protocol only.Amar Tumballi2009-06-293-9/+14
| | | | | | | | | This patch is a step towards giving compatibility between the versions of GlusterFS. Now onwards, the protocol-version won't depend on release versions. In general, multiple glusterfs versions can have common protocol-version. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* dht_readdir_cbk: use stat attributes in the READDIRPLUS dirents toAnand V. Avati2009-06-261-22/+21
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* rename dht_first_up_child to dht_first_up_subvolAnand V. Avati2009-06-262-2/+3
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* posix_readdir: fill stat structure into dir entryAnand V. Avati2009-06-261-0/+23
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* gf-dirent: add support for stat attribute in dir entry (to work likeAnand V. Avati2009-06-262-5/+13
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* mount script to take arguments like nfsAmar Tumballi2009-06-241-17/+34
| | | | | | | | | | | | | | | | | Ref: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=37 earlier instead of path, it used to take port number, which is an option (-o server-port=<port>), now. new syntax is bash# mount -t glusterfs <hostname>:<path/key> [mountpoint] [This patch is backward compatible with earlier syntax] bash# mount -t glusterfs <hostname>:<port> [mountpoint] Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* server-protocol: interpret the 'op' value properly when a packet is received.Amar Tumballi2009-06-231-4/+3
| | | | | | | | | Ref: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=35 The check done earlier was not handling the case when a 'op' is == MAX_VALUE (which is not defined), and used to skip to the next array (like gf_mops[MAX] == gf_cbks[0]) Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* check if the 'key' is the volume file name itself.Amar Tumballi2009-06-231-14/+34
| | | | | | | | With this patch, one can fetch any volumefile which is not pre-defined in volume file with 'option' in server protocol volume, instead clients can fetch the volume files based on the key name itself [From the confdir only] Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* mount.glusterfs.in correctness in case of duplicate mountAmar Tumballi2009-06-231-2/+2
| | | | | | | | mount.<fstype> script/program should return success in case when it finds duplicate mounts. It was returning failure earlier. Someversions of automount programs had issues with this behavior. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Fix typos in my previous commit 6010e2a4eCsaba Henk2009-06-231-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* glusterfsd - build proper mount/fuse structure.Basavanagowda Kanur2009-06-221-2/+17
| | | | | | | | | | while appending mount/fuse to a translator tree, make sure that <xlator_t-of-fuse>->next points to the first xlator in the list of xlators and not the subvolume of mount/fuse. NOTE: tree traversal should always happen through <xlator_t>->children Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* fuse: instead of having a fixed option list, assemble it using ↵Csaba Henk2009-06-221-56/+40
| | | | | | | | "fuse_opt_add_arg" This makes it easier to adjust the option list, and also reduces redundancy. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Avoid accessing local unconditionally in trash_common_*_cbk functions.Vijay Bellur2009-06-221-0/+8
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* local->loc should be filled in dht-mknod()Amar Tumballi2009-06-181-0/+9
| | | | | | | local->loc should be properly filled while creating a linkfile. otherwise this causes the segfault in underlying volume layer (mostly client-protocol). Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Add command line option to specify central log server.Vikas Gorur2009-06-183-2/+31
| | | | | | | | | Added two command line options: --log-server SERVER --log-server-port PORT Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Remove the trailing "/" which fails build with new version of automakeHarshavardhana2009-06-182-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* making dht and nufa's 'min-free-disk' option to take both percent and disk-sizeAmar Tumballi2009-06-184-38/+90
| | | | | | | | | | | Originally from Paul Rawson <plrca2@gmail.com> http://patches.gluster.com/patch/391/ : patch re-submitted with patching guidelines. cluster/distribute, and cluster/nufa uses new option PERCENT_OR_SIZET for its option 'min-free-disk'. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* adding an extra xlator option type, GF_OPTION_PERCENT_OR_SIZET.Amar Tumballi2009-06-182-3/+96
| | | | | | | | | | | Originally from Paul Rawson <plrca2@gmail.com> http://patches.gluster.com/patch/391/ : patch re-submitted with patching guidelines. with this patch, the xlator volume options get another type which can take arguments either in 'percent' or in 'bytes', which is useful in many cases. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfs: Prevent gf_fd_put'ing of unallocated fdShehjar Tikoo2009-06-181-1/+11
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfs: Chain newly allocated fdentries.Shehjar Tikoo2009-06-181-0/+1
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfs: Change GF_FDENTRY_ALLOCATED constantShehjar Tikoo2009-06-181-3/+2
| | | | | | | | | This change is being brought in so that we can differentiate between fdentry_ts when debugging using gdb. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* change the log level of disk full message in dht-diskusageAmar Tumballi2009-06-181-3/+3
| | | | | | | | the current msg is getting printed in warning level. Instead changed it to debug, as the msg specific each node being full is already getting printed in higher priority, hence this msg looks excessive. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Booster build should not depend on if mod_glusterfs is disabledHarshavardhana Ranganath2009-06-171-1/+1
| | | | | | | | Thanks to Erick Tryzelaar Sending this patch on behalf of Erick Tryzelaar <idadesub@users.sourceforge.net> Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Removed the swap being done for __noswap functions.Vijay Bellur2009-06-171-3/+3
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* change ha-statfs() to handle the case of loc->inode being NULLAmar Tumballi2009-06-172-27/+44
| | | | | | | | | | This fix is needed in ha_statfs(), as the current code doesn't handle the case of loc->inode being NULL, which is a valid case in statfs() [Remember its stateless call]. This was causing 100% disk full logs in distribute or nufa as the logic of checking whether the subvolumes have enough disk space on them used to fail. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* client: Replace saved_fds dict with listShehjar Tikoo2009-06-152-158/+177
| | | | | | | | | | | Thhie change removes a huge inefficiency in file open path where every open resulted in dictionary operations in order to let the client maintain a list of fd_t's being used over a particular client context. Resolves: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=16 Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfs: Turn fd-table O(1)Shehjar Tikoo2009-06-153-82/+141
| | | | | | | | | This commit reduces CPU usage of gf_fd_unused_get drastically by making it O(1) instead of O(n). Related to: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=16 Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* write-behind: fix memory corruptionRaghavendra G2009-06-151-0/+1
| | | | | | | | - wb_sync did not set local = NULL after stack_wind. It also used to free local if its not NULL as part of cleanup process. Hence there was a double free in STACK_DESTROY done in wb_sync_cbk. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* write-behind: check for memory allocation failures and take appropriate actionRaghavendra G2009-06-152-78/+438
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Do stat to check mode of the export directory in storage/posix.Vikas Gorur2009-06-151-1/+1
| | | | | | | Doing an lstat means init fails if the export directory is a symlink pointing to a directory. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: fix build error in fcntl implementation.Raghavendra G2009-06-151-1/+7
| | | | | | - F_DUPFD_CLOEXEC is defined only in linux kernel versions >= 2.6.24 Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* io-cache: fix warning by initializing conf = NULLAnand V. Avati2009-06-151-1/+1
|
* read-ahead: fix warning by initializing conf = NULLAnand V. Avati2009-06-151-1/+1
|
* libglusterfsclient: Call inode_lookup to prevent pruningShehjar Tikoo2009-06-121-5/+7
| | | | | | | | | | | | | This bug shows up while using unfs3 with replicate. The absence of an inode_lookup on a looked-up/created inode results in it getting pruned from the inode table. Consequently, a subsequent lookup for the inode results in a different inode number being returned by replicate. This breaks unfs3 because it tries to remember the inode numbers returned by two different stat-family calls. Resolves: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=11 Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* strict check of extended attribute flags while opening a striped fileAmar Tumballi2009-06-112-68/+223
| | | | | | | | | | Added a fd_ctx structure for stripe, which takes care of understanding the extended attribute flags, and opening the right blocks in order (to make sure the read/write operations happen in order). Helps to handle situations like accidentally adding subvolumes to stripe, etc Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* stripe: don't allow entry modification operations when any node is downAmar Tumballi2009-06-111-5/+13
| | | | | | | | if entry modification operations (like create/mknod/rename) happen when there is a node down, there will be inconsistency in striped fs. rather than curing it, prevent the issue from happening Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* stripe cleanupAmar Tumballi2009-06-113-2621/+2759
| | | | | | | | | | | | | stripe.c: indentation cleanup log messages cleanup coding standard guidelines removed ERR_ABORTs stripe.h moved the structure definitions here Signed-off-by: Anand V. Avati <avati@dev.gluster.com>