1. A method for data storage, comprising: in a system that comprises multiple servers and multiple storage devices, holding in a server a definition of a stripe that comprises multiple memory locations on the storage devices, to be used by the servers for storing multiple data elements and at least a redundancy element calculated over the data elements; and modifying, by the server, one or more of the data elements in the stripe by: executing in the storage devices an atomic command, which updates the redundancy element to reflect the modified data elements only if a current redundancy element stored in the storage devices reflects the multiple data elements prior to modification of the data elements; storing the modified data elements in the storage devices only in response to successful completion of the atomic command; when different writers to the stripe are permitted to write to a same data or redundancy element concurrently, storing the modified data elements in the storage devices only in response to successful completion of the atomic command; and when the different writers to the stripe are cannot write to the same data or redundancy element concurrently, storing the modified data elements in the storage devices irrespective of the successful completion of the atomic command.