summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* removed mod_glusterfs from the buildAmar Tumballi2009-07-172-107/+1
| | | | | | | future plan is to have httpd use booster and libglusterfsclient instead. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* 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
* Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/glusterAnand V. Avati2009-07-160-0/+0
|\
| * Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/glusterAnand V. Avati2009-07-090-0/+0
| |\
* | | server: don't check for 'loc->parent' in entrylk and inodelk callsAmar Tumballi2009-07-161-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
* | | change mount.glusterfs.in to work with non-bash shells too.Amar Tumballi2009-07-161-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | iostat to have more io detailsAmar Tumballi2009-07-161-9/+59
| | | | | | | | | | | | | | | | | | classified stat for write/read fops based on their block size. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement release and forget cbks.Raghavendra G2009-07-161-0/+49
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_lk.Raghavendra G2009-07-161-0/+97
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_ftruncate.Raghavendra G2009-07-161-0/+142
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fsync.Raghavendra G2009-07-161-0/+94
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_finodelk.Raghavendra G2009-07-161-0/+100
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fentrylk.Raghavendra G2009-07-161-0/+100
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_flush.Raghavendra G2009-07-161-0/+74
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fgetxattr.Raghavendra G2009-07-161-0/+101
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fsetxattr.Raghavendra G2009-07-161-0/+99
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement lc_fchmodRaghavendra G2009-07-161-0/+93
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fchownRaghavendra G2009-07-161-0/+95
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_fstat.Raghavendra G2009-07-161-0/+94
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_writevRaghavendra G2009-07-161-0/+118
| | | | | | | | | | | | | | | | | | - writev on any fd opened on a file invalidates the cache stored during lookup Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_readvRaghavendra G2009-07-161-0/+525
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - pseudo-code of the algorithm is given below if (content is cached) { validate-contents (); if (content cached is valid) { stack unwind with cached content; } else { goto read-from-storage; } } else { goto read-from-storage; } return; read-from-storage: if (open is already done on fd) { stack-wind read; } else { add the current readv to list of operations waiting on completion of open; if (open on the fd is in transit) { do nothing; } else { stack-wind open; } } return; Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: implement qr_openRaghavendra G2009-07-162-0/+219
| | | | | | | | | | | | | | | | | | | | | | | | - The file is opened actually only if it is not cached already in lookup. This adds responsibility for fops operating on fds to make sure that a valid fd actually opened on a file is used to complete the fop. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | quick-read: add qr_lookup.Raghavendra G2009-07-162-0/+147
| | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | Implementing quick-read translator.Raghavendra G2009-07-166-1/+186
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lookup can fetch the entire file in xattr dictionary using the key "glusterfs.content". We set the maximum size of the file that can be fetched so in the xattr_req dictionary using the same key. If file-size is less than or equal to the value set in dictionary, the content is stored in the dictionary using same key in lookup_cbk. For small files, we can do an optimization wherein we do not really send the calls open, read and close to the storage translators. Instead there can be an xlator which fakes open, read and close calls. For reads, it sends the data it has cached during lookup and hence saving the time for open, read and close calls to reach storage translators (this time can be significant if calls have to go through network to reach storage translator). Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* | | Return stat from read subvolume in dir-write ops.Vikas Gorur2009-07-162-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-162-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
* | | add strict validatation of GF_OPTION_TYPE_PATH option type.Amar Tumballi2009-07-161-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that users don't provide "../" in the path value in volume file, which should be considered security issue. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 141 (GF_OPTION_TYPE_PATH should check for presence of ".." in path) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=141
* | | 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
* | | break inode_path if the length of the path crosses PATH_MAXAmar Tumballi2009-07-161-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a given search for path can't exceed the length of PATH_MAX in any case. Hence, its best to make sure by adding a check inside the for loop of inode_path, so that it won't enter an infinite loop. 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
* | | cleanup 'ctx' from inode and fdAmar Tumballi2009-07-164-70/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Removing unused 'dict_t *ctx' from both inode and fd structures. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 128 (cleanup unwanted ctx dictionary in 'inode' and 'fd' structures.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=128
* | | ib-verbs: don't append ioq_entry to pending_list if first attempt of writing ↵Raghavendra G2009-07-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to network fails * fix to bug #101 - When a buffer bigger than ib-verbs-work-request-send-size was attempted to write to network, ib-verbs returns ENOTCONN. Neverthless, the ioq_entry corresponding to the write was appended to the pending lists of ioq_entries waiting to be written to network. This resulted in double free of header, once in protocol_client_xfer and again during cleanup of transport. The transport cleanup happened due to the timeouts of subsequent operations, since ioq_entry corresponding to writev was blocking any other operations from reaching server. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 101 (ib-verbs config crashing while dd'ing with a big mtu size) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=101
* | | fuse_bridge: handle failures in init() more gracefullyCsaba Henk2009-07-151-6/+37
| | | | | | | | | | | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 132 (fuse-bridge could do with some cleanups) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=132
* | | fuse-bridge: formatting cleanupsCsaba Henk2009-07-151-70/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - use PRIu64 for printing "unique" - use fcntl defines instead of explicit numeric values for querying open flags Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 132 (fuse-bridge could do with some cleanups) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=132
* | | fuse-bridge: further allocation failure handling fixesCsaba Henk2009-07-151-20/+63
| | | | | | | | | | | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 132 (fuse-bridge could do with some cleanups) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=132
* | | fuse-bridge: handle state allocation failureCsaba Henk2009-07-151-33/+46
| | | | | | | | | | | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 124 (state allocation failure not handled) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=124
* | | Added NULL checks in a few places.Vikas Gorur2009-07-151-7/+25
| | | | | | | | | | | | | | | | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 119 (filter + replicate crash..) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=119
* | | Return inode number always from the first up subvolume in AFR.Vikas Gorur2009-07-152-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> BUG: 116 (Replicate: Need inode number from first subvolume on fresh lookup) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=116
* | | Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/glusterAnand V. Avati2009-07-150-0/+0
|\ \ \ | |/ / |/| / | |/
| * 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
* | Added format-patch.sh. This script is to be used as a replacement of "git ↵Anand V. Avati2009-07-091-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>
* filter: use O_ACCMODE for checking file access modes.Raghavendra G2009-07-071-3/+6
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* read-ahead: use O_ACCMODE for checking file access modes.Raghavendra G2009-07-071-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* write-behind: Use O_ACCMODE while checking for access modes.Raghavendra G2009-07-071-2/+2
| | | | 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>