archipelago
12 years agoMake xsegbd query peer for disk size(using X_INFO)
Stratos Psomadakis [Thu, 22 Dec 2011 14:35:51 +0000 (16:35 +0200)]
Make xsegbd query peer for disk size(using X_INFO)

xsegbd will now send an X_INFO request to learn the size of the disk it's
mapping, instead of using the sector_size parameter at module load time.

Currently, xsegbd allocates its own segment, and thus it must wait until blockd
(or another peer with X_INFO support) joins the segment to get a response (this
will probably change soon).

12 years agoMake sure to unmap the segment in xseg_destroy()
Stratos Psomadakis [Thu, 22 Dec 2011 14:29:28 +0000 (16:29 +0200)]
Make sure to unmap the segment in xseg_destroy()

Add xops->unmap() in xseg_destroy(). If you don't unmap the segment before
calling xops->deallocate(), xsegdev->callback and xsegdev->callarg are not set
to NULL when rmmoding xsegbd, and lead to an error (or kernel panic) when trying
to insmod xsegbd without rmmoding xsegdev and xseg.

12 years agoAdd (initial) support for X_INFO request operation
Stratos Psomadakis [Wed, 21 Dec 2011 20:27:08 +0000 (22:27 +0200)]
Add (initial) support for X_INFO request operation

Add support for X_INFO request operation, to query information about a
target (X_INFO op support implemented in xseg-tool). Initial blockd
implementation 'returns' only the size of the target / file.

12 years agomake blockd loop over pending ios.
Giannakos Filippos [Fri, 16 Dec 2011 15:25:08 +0000 (17:25 +0200)]
make blockd loop over pending ios.

12 years agoremove close with negative file descriptor
Giannakos Filippos [Fri, 16 Dec 2011 15:24:20 +0000 (17:24 +0200)]
remove close with negative file descriptor

12 years agoMerge branch 'philfix'
Giannakos Filippos [Fri, 16 Dec 2011 10:47:59 +0000 (12:47 +0200)]
Merge branch 'philfix'

12 years agoinitialize lock in xq initialization.
Giannakos Filippos [Fri, 16 Dec 2011 10:41:12 +0000 (12:41 +0200)]
initialize lock in xq initialization.

12 years agoremove obsolete XSEG_{FLUSH,FUA}.
Giannakos Filippos [Fri, 16 Dec 2011 10:37:36 +0000 (12:37 +0200)]
remove obsolete XSEG_{FLUSH,FUA}.

12 years agoMerge branch 'philfix'
Georgios D. Tsoukalas [Tue, 13 Dec 2011 15:51:42 +0000 (17:51 +0200)]
Merge branch 'philfix'

12 years agofix buffer handling on incomplete/resubmitted reqs
Giannakos Filippos [Tue, 13 Dec 2011 15:40:10 +0000 (17:40 +0200)]
fix buffer handling on incomplete/resubmitted reqs

12 years agofix log_io printing beyond end-of-string garbage
Giannakos Filippos [Tue, 13 Dec 2011 15:28:43 +0000 (17:28 +0200)]
fix log_io printing beyond end-of-string garbage

12 years agoAdd pthread to linked libraries
Georgios D. Tsoukalas [Tue, 13 Dec 2011 15:19:00 +0000 (17:19 +0200)]
Add pthread to linked libraries

12 years agorelax shared segment access precautions
Georgios D. Tsoukalas [Tue, 13 Dec 2011 15:12:00 +0000 (17:12 +0200)]
relax shared segment access precautions

The shared array of peer type names is by design
append only, therefore no locking or copying strings
is needed to access it (only pointer conversions).
Append-only means that peer type names cannot be unregistered.

Unregistering is complicated because peers "cache"
the information they read from the shared array.

12 years agofix invalid shared pointer access and wrong retval
Giannakos Filippos [Tue, 13 Dec 2011 14:51:14 +0000 (16:51 +0200)]
fix invalid shared pointer access and wrong retval

also, lock and copy string from shared segment,
as a precaution.

12 years agorelax redundant shared access precautions
Georgios D. Tsoukalas [Tue, 13 Dec 2011 14:33:35 +0000 (16:33 +0200)]
relax redundant shared access precautions

Shared access to the shared array of peer type names
was designed to be safe without locking or copying
because the peer type name array is append only,
i.e. no peer type names can be unregistered.

Unregistering introduces many other problems
(and not just the lock/copy avoided here),
such as need for "cache" invalidation among peers,
who had previously accessed the shared array.

12 years agofix invalid pointer access to shared segment.
Giannakos Filippos [Tue, 13 Dec 2011 14:25:46 +0000 (16:25 +0200)]
fix invalid pointer access to shared segment.

Also, add locking and copying shared data, for safety.

12 years agoinitialization from my own repository
Georgios D. Tsoukalas [Tue, 13 Dec 2011 09:47:57 +0000 (11:47 +0200)]
initialization from my own repository