summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fixes for MacOSX and Solaris buildv2.0.4Harshavardhana Ranganath2009-07-093-42/+103
| | | | | | Fixes for Solaris and MacOSX build errors. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Return inode number always from the first up subvolume in AFR.Vikas Gorur2009-07-092-10/+16
| | | | | | | Also fixes a bug in the "KLUDGE" part. It was setting lookup_buf when it should have been setting local->cont.lookup.buf Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Added format-patch.sh. This script is to be used as a replacement of "git ↵Anand V. Avati2009-07-081-0/+60
| | | | format-patch" with similar arguments for submitting patches to the GlusterFS project
* detabify fuse-bridge.c (and other whitespace fixes)Csaba Henk2009-07-081-738/+738
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* protocol/server: use translated flags in protocol/server open and create fopsAnand Avati2009-07-071-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* protocol/client: use translated flags in protocol/client open and create fopsAnand Avati2009-07-071-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* protocol: add functions gf_flags_from_flags and gf_flags_to_flagsAnand Avati2009-07-071-0/+108
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* write-behind: set default window-size to 1MB.Raghavendra G2009-07-071-1/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* use fuse_reply_iov() in fuse_readv_cbkBasavanagowda Kanur2009-07-072-0/+13
| | | | | | | | | | | | changes come in two places. configure.ac - define HAVE_FUSE_REPLY_IOV if fuse_reply_iov is available in libfuse. mount/fuse - use fuse_reply_iov() in place of fuse_reply_vec(), if HAVE_FUSE_REPLY_IOV is defined. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: Update attr cache on read/writeShehjar Tikoo2009-07-072-5/+16
| | | | | | | | | | | We werent updating the attr AKA stat cache on read and write on files so every stat on the file before the timeout was returning stale attr from the cache. Yuck! This fixes it. Turns out there is a good aspect of unfs3's notoriety when it comes to doing stat()s for every operation. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Set timestamps properly when creating missing entries.v2.0.3Vikas Gorur2009-07-061-3/+37
| | | | | | | In AFR self-heal set timestamp of a freshly created missing entry to that of the source entry. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: automake 1.11 compatibility fixCsaba Henk2009-07-021-1/+1
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: Use O_ACCMODE for access mode checksShehjar Tikoo2009-07-021-3/+6
| | | | | | Ref: http://www.gnu.org/s/libc/manual/html_node/Access-Modes.html Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Print volume file after printing other details.Vikas Gorur2009-07-022-2/+4
| | | | | | | This makes the log format compatible with earlier versions. Fixes bug #105. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* performance/write-behind - bug fix in open() and create().Basavanagowda Kanur2009-07-021-1/+5
| | | | | | | | open() & create() calls should reset frame->local to NULL. bz# 104 Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* rpm spec file updates (removed mod_glusterfs and respective dependencies)Harshavardhana2009-07-011-40/+11
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* fuse 2.8 support for xlator/fuseHarshavardhana2009-07-012-0/+23
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* fuse 2.8 version check at configure levelHarshavardhana2009-07-011-1/+18
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Fix typos in my previous commit 6010e2a4eCsaba Henk2009-07-011-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* fuse: instead of having a fixed option list, assemble it using ↵Csaba Henk2009-07-011-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>
* 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-13/+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>
* 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-302-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-301-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-301-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-301-30/+10
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Remove gf_fd_unused_get2Shehjar Tikoo2009-06-302-40/+4
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: Add new booster-specific fd-tableShehjar Tikoo2009-06-304-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>
* libglusterfs: Prevent gf_fd_put'ing of unallocated fdShehjar Tikoo2009-06-301-1/+11
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfs: Chain newly allocated fdentries.Shehjar Tikoo2009-06-301-0/+1
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfs: Change GF_FDENTRY_ALLOCATED constantShehjar Tikoo2009-06-301-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>
* client: Replace saved_fds dict with listShehjar Tikoo2009-06-302-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-303-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>
* booster: fix build error in fcntl implementation.Raghavendra G2009-06-301-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>
* booster: fix memory corruption in booster_cleanupRaghavendra G2009-06-301-4/+10
| | | | | | | - calling glusterfs_umount_all leads to memory corruption. hence commenting out for timebeing. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: reset the vmplist and vmpentries to 0 in glusterfs_resetRaghavendra G2009-06-301-0/+6
| | | | | | | - Generally glusterfs_reset is called after fork in child to empty out vmplist. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: implement fcntl.Raghavendra G2009-06-301-1/+104
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: implement glusterfs_fcntl.Raghavendra G2009-06-302-0/+117
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: implement readdir_r and readdir64_r.Raghavendra G2009-06-302-0/+70
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: implement glusterfs_readdir_rRaghavendra G2009-06-302-0/+72
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: update offset in glusterfs_read_async_cbk only if offset ↵Raghavendra G2009-06-302-4/+10
| | | | | | | | | | stored in fd_ctx is used. - this helps in implementing sendfile(2). manpage says that "If offset is not NULL, then sendfile() does not modify the current file offset of in_fd" Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: call glusterfs_umount_all during cleanupRaghavendra G2009-06-301-0/+4
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: implement sendfile.Raghavendra G2009-06-301-0/+58
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: implement glusterfs_sendfile.Raghavendra G2009-06-302-0/+171
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: add glusterfs_umount_all.Raghavendra G2009-06-302-0/+23
| | | | | | | - unmounts all the entries in the vmplist. - this api helps booster to cleanup all the mounts in a single call. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: make glusterfs_umount thread safeRaghavendra G2009-06-301-18/+42
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* libglusterfsclient: make glusterfs_mount thread safe.Raghavendra G2009-06-301-51/+80
| | | | | | | - this patch also checks for the presence of vmp before adding an vmpentry. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* booster: remove mount table which maps a path to glusterfs handler.Raghavendra G2009-06-301-236/+86
| | | | | | | | | | - if there are any glusterfs mounts(real, not virtual) which are not specified through booster-fstab those mounts are also added to the virtual mountpoint list of libglusterfsclient. This also removes the mount table in booster and all the mounts whether they are real or virtual are handled by libglusterfsclient. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>