summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* libglusterfsclient: Invalidate iattr cache on readsShehjar Tikoo2009-07-311-4/+2
| | | | | | | | | | | Earlier we have invalidated the iattr cache on writes. Now we need to do so for reads also, so that we are not updating the iattr cache with 0-filled stat received from io-cache. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 180 (fileop fails at chmod with stale file handle error over unfs3) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=180
* afr: fix afr_utimens to wait for success of utimens on atleast ↵Raghavendra G2009-07-301-1/+1
| | | | | | | | | | | | | priv->wait_count children. - need_unwind was initialised to 1 in afr_utimens_wind_cbk causing replicate to unwind just after first reply, irrespective of whether it was a success or failure. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 71 (dns failure causing "Transport endpoint is not connected") URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=71
* replicate: Return ino from first subvolume on inode creation fopsShehjar Tikoo2009-07-301-9/+28
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 177 (replicate: On file/dir creation, replicate returns inode from random subvolumes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=177
* libglusterfsclient: Use iobufs for storing application write dataShehjar Tikoo2009-07-302-18/+85
| | | | | | | | | | | | | | | | | | | | | Till now we've been creating an iovec, storing references in it to the application data and simply passing it on to the translator tree. This means that the buffer being passed to the translators is not at all associated with the memory ref'd by the iobref argument to write fop. This is a problem when write-behind is a translator in the tree since it assumes that the memory in the iovecs passed to write fops is already refcounted by the iobref and so it simply copies the address of the application data. The problem is that the application can continue using this buffer, free it or over-write it destroying the data that write-behind may write at a later time. The solution involves copying the application's write buffer into an iobuf which will be referred to by the iobref. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 178 (libglusterfsclient: Data corruption on using write-behind in translator tree) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=178
* booster: Fix fd leak due to incorrect NULL checkShehjar Tikoo2009-07-291-1/+1
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 174 (booster: fd_ts, they are a leakin) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=174
* server-protocol: fix in server-loc-fill()Amar Tumballi2009-07-281-3/+0
| | | | | | | | | | | | to continue with 'hashed' inode, even if inode_path() on the inode fails. This will is needed for few lock operations, to unlock the lock held on inode. (ie, it fixes 'rm -rf *' hang issue, seen from multiple clients). Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 112 (parallel deletion of files mounted by different clients on the same back-end hangs and/or does not completely delete) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=112
* libglusterfsclient: Fix solaris build errorShehjar Tikoo2009-07-281-2/+3
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 115 (./configure adds libglusterfsclient when it shouldn't) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=115
* cluster/afr: Use user-supplied struct flock to STACK_WINDVikas Gorur2009-07-271-1/+0
| | | | | | | | | | | | afr_lk_cbk: Use the original struct flock supplied by the user to do further STACK_WIND's, and not the flock returned by the previous STACK_WIND. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 159 (Client hangs when coherent byte range locks is attempted in replicate setup) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=159
* protocol/server: add checks for updatation of loc->parent in entrylk() or ↵Basavanagowda Kanur2009-07-271-3/+6
| | | | | | | | | | | | | inodelk(). entrylk() and inodelk() should try to update loc->parent only if parent is not-NULL. because it is not an error to have loc->parent == NULL for entrylk() and inodelk() operations. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 162 (Replication segfaults with many nodes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=162
* libglusterfsclient: Workaround for local memory corruptionShehjar Tikoo2009-07-271-1/+1
| | | | | | | | | | | | There seems to a reproduceable corruption specifically of the libglusterfs_client_local_t that is allocated for the read call. Therefore, the subsequent access to fd inside local leads to a segfault. This is a temporary fix. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 164 (libglusterfsclient: Segfault due to memory corruption of frame local in libgf_client_read) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=164
* cluster/afr: Return same inode number in stat buf for readv_cbkVikas Gorur2009-07-272-0/+4
| | | | | | | | | | Remember the inode number that had been returned in lookup_cbk and set the stat buf->ino to the same. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 166 (libglusterfsclient: Cached stat buf inode is different from ino in inode_t) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=166
* cluster/afr: Set inode number in unwind_buf in the inode-write calls.Vikas Gorur2009-07-271-17/+17
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 166 (libglusterfsclient: Cached stat buf inode is different from ino in inode_t) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=166
* Return stat from read subvolume in dir-write ops.Vikas Gorur2009-07-272-52/+83
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 138 (create family calls do not return stat buf from read child) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=138
* Return stat info from read-child in all the inode-write opsVikas Gorur2009-07-272-18/+205
| | | | | | | | | | | Also modifies the inode-write ops to wait for the call to read-child to return (whether success or failure) before unwinding. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 125 (stat information not returned from the same subvolume always) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=125
* enable libglusterfsclient build by defaultv2.0.5Anand V. Avati2009-07-231-2/+2
|
* libglusterfsclient: Avoid overwrite of inode found through ino numberShehjar Tikoo2009-07-231-3/+8
| | | | | | | | | | | | | | | | | In libgf_client_loc_fill, there is a possibility that all the ino, par and name are specified as non-NULL,non-zero args. So if an inode is located in the itable using the ino and the subsequent search for the inode using the par-ino and the file name does not result in an inode being found, the current code over-writes the inode that was found through the ino. The correct behaviour is to stop further searches if inode was already found using ino. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 161 (unfs3 crashes on link system call by fileop) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
* libglusterfsclient: Fill new loc with target's ino on linkShehjar Tikoo2009-07-231-0/+1
| | | | | | | | | | | | | | | In the loc_t of the link being created, we must fill in the inode of the old/target loc since this is a link operation. The inode_link to the new parent is called in libgf_client_link. This fixes a crash while running fileop over a fully-loaded dist-repl vol file. Ref: Bugzilla 161 Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 161 (unfs3 crashes on link system call by fileop) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
* libglusterfsclient: Fake a fsid for every VMPShehjar Tikoo2009-07-205-6/+72
| | | | | | | | | | | | This is needed to work around the replicate behaviour of possibly returning device number for the same file from different subvolumes. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 148 (replicate: Returns st_dev from different subvols resulting in ESTALE thru unfs3booster) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=148
* libglusterfsclient: Move DHT root-lookup workaround to initShehjar Tikoo2009-07-202-15/+12
| | | | | | | | | | | | | | | The workaround for the DHT requirement for a lookup on / needs to be done only once when the xlator graph is inited. Doing it on every path's lookup results in a major performance penalty when using distribute subvolumes upwards of 16, as reported by Avati. Ref: bug 152 Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 152 (libglusterfsclient: DHT workaround is a major performance bottleneck) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=152
* added timestamp to crash dump log.Amar Tumballi2009-07-201-4/+19
| | | | | | | | | also did some minor enhancements in formating Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 151 (crash dump log should be in 'logviewer' friendly format) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=151
* Do not failover readdir in replicateAnand Avati2009-07-171-34/+18
| | | | | | | | | | | | Backport of http://patches.gluster.com/patch/561/ to release-2.0 Also, the failover version of afr_readdir_cbk is buggy and crashes when it is called after a failover inevitably Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 150 (AFR readdir should not failover to other subvolume) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=150
* server: don't check for 'loc->parent' in entrylk and inodelk callsAmar Tumballi2009-07-171-4/+2
| | | | | | | | | | | | the lock operation on entry or inode is going to happen on only one inode, and it doesn't need dentry (with info on parent) for the lock operation to complete. Hence, in server_{inode,entry}lk() calls after server_loc_fill, we -should not- be checking for parent inode. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 112 (parallel deletion of files mounted by different clients on the same back-end hangs and/or does not completely delete) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=112
* removed mod_glusterfs from the buildAmar Tumballi2009-07-172-104/+1
| | | | | | | future plan is to have httpd use booster and libglusterfsclient instead. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* change mount.glusterfs.in to work with non-bash shells too.Amar Tumballi2009-07-171-3/+3
| | | | | | | | | | | | removed 'fuction ' prefix to function definitions which was very much /bin/bash specific. Thanks to Brent A. Nelson <brent@phys.ufl.edu> for the patch. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 139 (tiny glitch in mount.glusterfs in 2.0.4) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=139
* break inode_path if the length of the path crosses PATH_MAXAmar Tumballi2009-07-171-0/+7
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 134 (infinite loop in inode_path ()) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=134
* libglusterfsclient: Invalidate not update iattr cache on writevShehjar Tikoo2009-07-172-2/+48
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 149 (libglusterfsclient interacts incorrectly with write-behind on writev) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=149
* Remove the trailing "/" which fails build with new version of automakeHarshavardhana2009-07-172-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Add a random initial offset to the afr round robin indexErick Tryzelaar2009-07-161-0/+3
| | | | | | | | | | | | | | | This patch helps to distribute load across an afr cluster when you have clients with the same access patterns, such as in benchmarking or map-reduce. By randomly offsetting the initial read_child_rr, clients should distribute reads over the afr nodes on average. A better solution could be to randomly shuffle the children instead of chosing a different initial offset. This should average the reads better across the nodes, but I'm not sure if there are any other consequences to doing this. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* fuse-bridge: Export user.glusterfs-booster-mount xattrShehjar Tikoo2009-07-161-0/+3
| | | | | | | | | | | | | | | This needs to be exported in order to have the booster Mount Point Bypass technique work through libglusterfsclient. Booster uses the mount point to register with libglusterfsclient as a VMP. Subsequently, all file operations on the mounted GlusterFS mount point get redirected to libglusterfsclient. This fixes bug 136. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 136 (booster does not redirect ops on GlusterFS mount point into libglusterfsclient) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=136
* 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>