summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/afr/src
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* 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
* 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
* fix build warnings in 'afr'Amar Tumballi2009-07-202-6/+18
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* 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
* 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
* Set timestamps properly when creating missing entries.Vikas 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>
* cluster/afr - replace ZR_FILENAME_MAX by NAME_MAXBasavanagowda Kanur2009-07-061-4/+4
| | | | 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>
* Do not fail over readdir in replicate.Vikas Gorur2009-06-111-27/+4
| | | | | | | | | If readdir fails on a subvolume, do not fail-over to the next subvolume, since the order of entries and offsets won't be same on all subvolumes. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Do itransform on every entry in readdir_cbk.Vikas Gorur2009-06-111-4/+9
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Filter out changelog xattrs in replicate.Vikas Gorur2009-06-111-1/+64
| | | | | | | | The AFR changelog xattrs, "trusted.afr.*" are now filtered and prevented from being visible on the mountpoint. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Fix crash in afr data self heal. Bugzilla ID: 3Vikas Gorur2009-06-081-0/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Do itransform in AFR readdir.Vikas Gorur2009-05-261-3/+10
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Always do itransform of the inode number from the first up child.Vikas Gorur2009-05-261-8/+17
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Preserve atime/mtime during data self heal.Vikas Gorur2009-05-261-8/+51
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Set op_errno properly in afr_flush.Vikas Gorur2009-05-081-0/+1
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* afr self-heal: update file size of the returning stat buf with source file's ↵Anand V. Avati2009-05-061-0/+1
| | | | size
* Do not lock entire file for metadata operations.Vikas Gorur2009-05-052-8/+8
| | | | | | | | Metadata operations now lock only a single byte at offset (LLONG_MAX - 1) instead of the whole file, to avoid contention with writev(). Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Made afr_flush a 'quick-unwind' transaction.Vikas Gorur2009-05-051-6/+67
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* afr logging cleanupAnand V. Avati2009-04-284-52/+45
|
* Cleaned up log messages in replicate.Vikas Gorur2009-04-2410-186/+179
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Do not fail lookup() in case of split-brain.2.0.0rc9Vikas Gorur2009-04-231-6/+0
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* replicate dir self-heal - when creating a missing dir/file, set pending ↵Anand V. Avati2009-04-231-13/+68
| | | | xattrs on source subvolume for that dir/file
* fix in afr directory self-heal (partial healing)Anand V. Avati2009-04-231-0/+5
| | | | impunge loop was 'continued' on a different subvolume in certain cases, resulting in healing of partial files
* afr_lookup_cbk - self-heal getting missedAnand V. Avati2009-04-221-25/+25
| | | | | | | | compare for mismatching sizes and attributes before overwriting local->stbuf for read-child subvolume. This causes files with differing sizes on backed not to get self-healed if xattrs were missing. Also add the ESTALE check for compulsorily failing revalidates in case of 2nd unwind and beyond Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Check return value of afr_sh_select_source.2.0.0rc8Vikas Gorur2009-04-203-1/+18
| | | | | | If select_source returns -1, abort self-heal. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Minor fix in afr_sh_build_pending_matrix.Vikas Gorur2009-04-201-3/+0
| | | | | | Remove incorrect check for xattr[i] being NULL. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* afr-transaction: handle double flushesAnand V. Avati2009-04-201-1/+3
| | | | __if_fd_pre_op_done - reset fd_ctx->pre_op_done to 0 so that double flushes do not result in two xattrop() calls
* Fix two memory leaks in afr self heal code.Vikas Gorur2009-04-171-0/+4
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Use original pid when calling the FOP in afr transaction.Vikas Gorur2009-04-162-3/+42
| | | | | | | | Save the original pid while locking and restore it after the FOP is done. This ensures posix-locks can release locks (fcntl) properly. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Changed xattr format of afr changelog to support adding and removing of ↵Vikas Gorur2009-04-1611-287/+322
| | | | | | subvolumes while keeping existing data. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Send statbuf from the same subvolume, even across revalidates.Vikas Gorur2009-04-131-5/+14
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* update cluster/afr with new readv writev prototypesAnand V. Avati2009-04-125-17/+20
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Compulsorily do self heal if file sizes differ.Vikas Gorur2009-04-096-23/+100
| | | | | | | | | If file sizes differ, then compulsorily do self-heal. If no 'wise' sources are found, then pick a 'fool' with the biggest file size. If even 'fools' aren't found, pick the 'innocent' source with the biggest file size. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Handle files which have no pending xattrs at all.Vikas Gorur2009-04-091-1/+27
| | | | | | | | If a pending xattr key is non-existent on a file (call such files 'ignorant'), make all other non-ignorant subvolumes point towards the ignorant one. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Erase xattr during self-heal based on original dict.Vikas Gorur2009-04-095-10/+27
| | | | | | | | Decrement xattr during self-heal based on the original dict instead of pending_matrix, as the pending_matrix might have been altered later. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Fix minor bug in afr_open_cbk.Vikas Gorur2009-04-081-3/+7
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Fix in changelog logic.Vikas Gorur2009-04-076-41/+254
| | | | | | If a writev fails, remember it by marking it in the fd context. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Consider a subvolume dead if an fop fails on itVikas Gorur2009-04-073-17/+19
| | | | | | | | | Transaction fops earlier called afr_transaction_child_died only if an fop failed due to ENOTCONN or EBADFD. Now they consider a child dead regardless of the reason for failure. This handles cases such as ENOSPC. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Fix in return value of afr_sh_mark_sourcesVikas Gorur2009-04-063-10/+26
| | | | | | | | | | | | afr_sh_mark_sources now returns: -1 if two wise subvols conflict (split-brain) 0 if all subvols are innocent (no self-heal needed) >0 if sources found Also, changes to callers of afr_sh_mark_sources to handle return value properly. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Made afr inode context a 64-bit packed value instead of a structure.Vikas Gorur2009-04-034-313/+205
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Load balance read operations among subvolumes in afrVikas Gorur2009-04-024-110/+513
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Defined afr_inode_ctx_t structure.Vikas Gorur2009-04-022-11/+76
| | | | | | | | Notification of a split-brain situation, which was earlier signalled by the mere presence of inode context is now signalled by the 'split_brain' member in the structure. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Print log message when AFR receives CHILD_UP/DOWN notificationVikas Gorur2009-04-021-0/+6
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* cluster/replicate should propogate the ESTALE error to parent, when at least ↵Basavanagowda Kanur2009-04-021-4/+14
| | | | | | one subvolume returns ESTALE. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Fixed typo in warning string in afr.cVikas Gorur2009-03-261-1/+1
| | | | | | Fixed typo. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>