summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* OS X: make location of launchd service configurableCsaba Henk2010-05-312-1/+9
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 361 (GlusterFS 3.0 should work on Mac OS/X) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=361
* OS X: salvage signal handling from mount routineCsaba Henk2010-05-311-2/+3
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 361 (GlusterFS 3.0 should work on Mac OS/X) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=361
* protocol/client: Add missing argument to readlink unwind call.Pavan Sondur2010-05-311-1/+2
| | | | | | | | Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 967 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=967
* cluster/stripe: NULL pointer dereference checks addedAmar Tumballi2010-05-281-152/+359
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 966 (NULL check for avoiding NULL dereferencing of pointers..) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=966
* cluster/stripe: added STACK_UNWIND_STRICT macroAmar Tumballi2010-05-281-664/+717
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 966 (NULL check for avoiding NULL dereferencing of pointers..) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=966
* catch up with 4911659 on OS XCsaba Henk2010-05-281-0/+1
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 952 (EBADF returned by server-protocol confuses AFR) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=952
* protocol/server: Use EBADFD instead of EBADF in the case of a failed fd ↵Pavan Sondur2010-05-271-1/+1
| | | | | | | | | | resolution. Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 952 (EBADF returned by server-protocol confuses AFR) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=952
* protocol/client: Unwind with error if getting remote inode number fails.Pavan Sondur2010-05-271-1/+44
| | | | | | | | Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 951 (Unwind if inode_ctx fails in all FOPS) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=951
* nfs/lib: Remove "-module" from LDFLAGSVikas Gorur2010-05-271-1/+1
| | | | | | | | | | | libglrpcsvc is a library and not a module according to Mac OS X. Hence "-module" needs to be removed for linking to work. Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 361 (GlusterFS 3.0 should work on Mac OS/X) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=361
* stat information of postparent stored in preparentstr insteadof ↵Raghavendra Bhat2010-05-271-1/+1
| | | | | | | | | | postparentstr in trace Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 945 (stat information of postparent stored in preparentstr instead of postparentstr in trace) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=945
* take the return value of trace_stat_to_str for preparent and postparent in ↵Raghavendra Bhat2010-05-271-2/+2
| | | | | | | | | | corresponding variables Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 945 (stat information of postparent stored in preparentstr instead of postparentstr in trace) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=945
* Check whether NULL is returned after GF_CALLOC in the init function of io-statsRaghavendra Bhat2010-05-271-0/+6
| | | | | | | | Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 946 (Null check in init function of io-stats) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=946
* resolver: set safer conditionals during path creationAnand Avati2010-05-271-1/+1
| | | | | | | | | | | | when client would send just the path as part of a transaction, path reconstruction would create parent directory's path instead of actual path at the time of resolution. Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 935 (Directories change mode from 0755 to 0644 automatically) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=935
* performance/write-behind: explicitly enforce ordering of overlapping writes.Raghavendra G2010-05-261-128/+126
| | | | | | | | | | | | | | | | | - If there are non-contiguous offsets (offsets which do not start where previous write ended), wait for completion of previous writes to server before sending new ones. - Send flush call to server only when all writes are completed. - If a file is opened with O_APPEND, at any point of time a maximum only one write call to server should be in transit. This is to avoid reordering of writes in the presence of afr which can result in data corruption. See bug #934 for more details. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 934 (md5sum mismatch when files are transferred using vsftpd) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=934
* features/locks: Use fuse supplied lock owner even for internal locks.Pavan Sondur2010-05-262-2/+2
| | | | | | | | Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 934 (md5sum mismatch when files are transferred using vsftpd) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=934
* socket: make tcp keepalive work on OS XCsaba Henk2010-05-261-2/+10
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 754 (enable tcp keepalive) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=754
* fix format string warning on OS XCsaba Henk2010-05-261-1/+6
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 936 (Provide microsecond timestamp in logfile) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=936
* performance/quick-read: implement an upper size limit for the cache.Raghavendra G2010-05-263-254/+610
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 723 (enhancements to quick read) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=723
* libglusterfs: Use usecond resolution for loggingVijay Bellur2010-05-211-3/+8
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 936 (Provide microsecond timestamp in logfile) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=936
* free this->private in fini in io-statsRaghavendra Bhat2010-05-211-0/+2
| | | | | | | | Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 930 (conf not freed in io-stats fini) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=930
* socket: Support TCP-KEEPALIVEShehjar Tikoo2010-05-212-0/+84
| | | | | | | | | | | | | | | | | | Introduces two new socket options: 1. transport.socket.keepalive: bool Sets keepalive on a transport. On by default. 2. transport.socket.keepalive-interval: integer Number of seconds between each keepalive message on the socket. Default in linux is 2 hours. To change that value for a given transport, use this option. Integer value is interval in seconds. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 754 (enable tcp keepalive) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=754
* nfs: Introduce trusted-write and trusted-sync optionsShehjar Tikoo2010-05-213-6/+183
| | | | | | | | | | | | | | | | | | | | | | | | Introduces two new options: 1. nfs3.*.trusted-write: Forces UNSTABLE writes to return STABLE to NFS clients to prevent the clients from sending a COMMIT. STABLE writes are still handled in a sync manner and so are COMMITs if they're sent at all. 2. nfs3.*.trusted-sync: Forces all WRITEs and COMMITs to return STABLE return flags to NFS clients to avoid the overhead of STABLE writes, and COMMITs that follow UNSTABLE writes. This includes the trusted-write functionality. In addition to the trusted-write, it also writes STABLE writes in an UNSTABLE manner. Both violate the NFS protocol but allow better write perf in most configurations. Use with caution. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 924 (Slow NFS synchronous writes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=924
* Log proper error message when hostname or ip does not conform to standards.Sachidananda2010-05-211-1/+6
| | | | | | | | Signed-off-by: Sachidananda Urs <sac@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 923 (Hostnames with underscores fail) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=923
* OS X: enable mac-compat for OS X clients.Csaba Henk2010-05-211-2/+6
| | | | | | | | | | | Injecting volumes at startup this way is pretty hacky but it will do for now. Refactoring that part will come as separate commit. Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 361 (GlusterFS 3.0 should work on Mac OS/X) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=361
* OS X: adjustments, minor fixes to eliminate warningsCsaba Henk2010-05-218-15/+153
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 361 (GlusterFS 3.0 should work on Mac OS/X) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=361
* OS X: NFS adjustments needed for OS XCsaba Henk2010-05-213-0/+16
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 361 (GlusterFS 3.0 should work on Mac OS/X) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=361
* OS X: basic additions for OS X client supportCsaba Henk2010-05-2113-47/+1290
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 361 (GlusterFS 3.0 should work on Mac OS/X) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=361
* cluster/afr: Don't dereference fd ptr - it might be NULL due to a failed call.Pavan Sondur2010-05-211-1/+1
| | | | | | | | Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 914 ([3.0.4] Crash in afr_opendir_cbk) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=914
* Bug 799: dht prints 100% full when subvolume is not connected to remote hostLakshmipathi2010-05-211-1/+1
| | | | | | | | Signed-off-by: lakshmipathi <lakshmipathi@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 799 (dht prints 100% full when subvolume is not connected to remote host) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=799
* fuse, dht: use readdir by default.Anand Avati2010-05-132-5/+17
| | | | | | | | | | | dht - switch over to readdirp based algo if one subvolume is down Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@amp.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 898 (small file performance enhancements) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=898
* dht: perform revalidate on one subvolumeAnand Avati2010-05-131-108/+17
| | | | | | | | | | | | generation numbers should detect recreations and no need to rely on layout changes anymore Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@amp.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 898 (small file performance enhancements) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=898
* write-behind: update default values for better small file performanceAnand Avati2010-05-131-2/+2
| | | | | | | | | Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@amp.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 898 (small file performance enhancements) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=898
* added features/mac-compatCsaba Henk2010-05-1312-268/+345
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 800 (Problem on OSX with NFS and CIFS exports) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=800
* nfs3: Final unref only on successful removeShehjar Tikoo2010-05-131-1/+5
| | | | | | | | | | | The final unref on the inode during a file removal should take place only if the file removal was successful. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 857 (Crash in afr_sh_entry_expunge_entry_cbk) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=857
* nfs: fix warning on 32 bitCsaba Henk2010-05-111-2/+2
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 902 (iozone hangs during random read throughput test) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=902
* glusterfs-profiler: Add text mode support.Vikas Gorur2010-05-111-42/+599
| | | | | | | | | | | | | | | glusterfs-profiler works in text mode by default now. This allows it to run on systems which don't have matplotlib installed. Modes can be selected using: -m graph - Graphical mode -m text - Text mode (default) Signed-off-by: Vikas Gorur <vikas@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 268 (Add timing instrumentation code) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=268
* extras: Add NFS-specific log analyzer toolShehjar Tikoo2010-05-101-0/+143
| | | | | | | | | | | | | | | | | Most of the time, a NFS request and the reply are separated by hundreds of lines of other debugging output most of which is not always relevant for NFS debugging. This script synthesizes the full glusterfs log into the parts relevant for NFS while bringing together the NFS requests with there replies on one line. Min log-level required for this script to be useful is DEBUG. Only works for NFS translator. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 913 (NFS-specific log analyzer tool) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=913
* nfs3: Round-up read reply bytes of multi-vector replyShehjar Tikoo2010-05-102-3/+2
| | | | | | | | | | | | | | | | | A previos commit brought in support for returning read replies when subvolumes return reads in multiple iovecs. This did not completely fix the problem since the bytes in iovecs all together could be unaligned with the 4 byte boundary as needed by XDR for the opaque data. This resulted in read requests being either retransmitted or rejected with an error message in syslog on the NFS client. Signed-off-by: Shehjar Tikoo <shehjart@dev.gluster.com> Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 902 (iozone hangs during random read throughput test) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=902
* rpcsvc: Move xdr round up functions to rpc codeShehjar Tikoo2010-05-104-28/+42
| | | | | | | | | Signed-off-by: Shehjar Tikoo <shehjart@dev.gluster.com> Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 902 (iozone hangs during random read throughput test) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=902
* nfs: Fine tune nfs_entry_loc_fill return valuesShehjar Tikoo2010-05-101-4/+12
| | | | | | | | | | | | | | A previous change to this function introduced a regression for exclusive creates. This patch fixes the regression by bringing the return values in line with what the callers expect in different situations of loc filling. Signed-off-by: Shehjar Tikoo <shehjart@dev.gluster.com> Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 857 (Crash in afr_sh_entry_expunge_entry_cbk) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=857
* Adding GF_LOG_OCCASIONALLY to prevent repeated log messagesAnush Shetty2010-05-092-12/+19
| | | | | | | | Signed-off-by: Anush Shetty <anush@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 10 ([ glusterfs 2.0.0 ] - Repeated Log messages with invalid remote-host in protocol/client) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=10
* Unset split-brain flags in afr_self_heal_completion_cbk if self heal ↵Simone Gotti2010-05-093-7/+12
| | | | | | | | | | completes successfully. Signed-off-by: Simone Gotti <simone.gotti@gmail.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 884 (I/O errors after fixed split brain and successfully completed self heal) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=884
* nfs3: Submit multiple vectors received in read callbackShehjar Tikoo2010-05-083-17/+23
| | | | | | | | | | | | | | There is a possibility of io-cache or read-ahead returning a read buffer that straddles two separate pages in ioc or ra, through two struct iovecs. Current nfs3 read reply does not return as many vectors as received from a subvolume leading to a short read for the NFS client. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 902 (iozone hangs during random read throughput test) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=902
* rpcsvc: Support multiple vectors during reply submissionShehjar Tikoo2010-05-082-1/+30
| | | | | | | | | | | | RPC reply path allows attaching a single iovec to a reply. This limits the replies for certain program ops which need to return multiple vectors for eg, the NFSv3 read reply. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 902 (iozone hangs during random read throughput test) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=902
* nfs3: Use standard macro to return ESTALEShehjar Tikoo2010-05-081-5/+2
| | | | | | | | Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 857 (Crash in afr_sh_entry_expunge_entry_cbk) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=857
* nfs: Handle failed parent loc fillingShehjar Tikoo2010-05-081-6/+6
| | | | | | | | | | | | | Just because an inode_get for parent (ino, gen) returns a valid inode_t does not meant that the inode_path(..in nfs_parent_inode_loc_fill..) will return successfully. The failure of nfs_parent_inode_loc_fill was not handled resulting in a NULL path being passed for the fop. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 857 (Crash in afr_sh_entry_expunge_entry_cbk) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=857
* Fix for crash in stripe_entry_self_healAnush Shetty2010-05-081-1/+1
| | | | | | | | | Signed-off-by: Anush Shetty <anush@gluster.com> Signed-off-by: Anush Shetty <anush@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 887 (Crash in stripe_entry_self_heal) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=887
* Add key/type pair to volume_options.Sachidananda2010-05-081-0/+3
| | | | | | | | | | | | This avoids warning message to be logged for internal option `transport.socket.lowlat' as not being recognized, when transport/ib-verbs is used. Signed-off-by: Sachidananda Urs <sac@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 818 (transport.socket.lowlat option is not given as can be seen from the vol-file still the warning shows up in the logs) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=818
* Check whether a server is down before calling rename on the directoryRaghavendra Bhat2010-05-081-0/+7
| | | | | | | | Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 820 (distribute directory rename problem when one subvol is down) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=820
* posix: Support thread-safe vectored writes/readsShehjar Tikoo2010-05-051-84/+90
| | | | | | | | | | | | | | | | | | | | | | | | ..by maintaining internal offsets and using pwrite/pread instead of writev/read. The recent io-threads change is causing concurrent writes to a file from different io-threads. This results in a race between two threads both of which are trying to call lseek-writev. The lseek-writev sequence should be a critical section. This is where pwrite syscall helps. pwrite also requires an offset to be given so for supporting pwrites for multiple iovecs we maintain an offset within posix for the duration of the write fop and pass this internal offset to pwrite. The same logic also applies to read, only difference is that we do not need to read multiple iovecs but only provide an atomic lseek-read sequence. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 883 (Data corruption due to thread unsafe reads and writes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=883