[Ocfs2-tools-devel] [PATCH 3/6] libo2dlm: Detect invalid LVBs
Joel Becker
joel.becker at oracle.com
Wed Feb 10 01:34:23 PST 2010
When a DLM does recovery, it may have to invalidate the contents of an
LVB or two. The DLMs provide a method to detect this. dlmfs has
learned to report this via a zero-length read(2). libo2dlm now notices
the zero length and returns an error to the caller.
Signed-off-by: Joel Becker <joel.becker at oracle.com>
---
libo2dlm/o2dlm.c | 2 ++
libo2dlm/o2dlm_err.et | 3 +++
2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/libo2dlm/o2dlm.c b/libo2dlm/o2dlm.c
index bf708e7..ee7f34c 100644
--- a/libo2dlm/o2dlm.c
+++ b/libo2dlm/o2dlm.c
@@ -564,6 +564,8 @@ static errcode_t o2dlm_read_lvb_classic(struct o2dlm_ctxt *ctxt,
ret = read(fd, lvb, len);
if (ret < 0)
return O2DLM_ET_LVB_READ;
+ if (!ret)
+ return O2DLM_ET_LVB_INVALID;
if (bytes_read)
*bytes_read = ret;
diff --git a/libo2dlm/o2dlm_err.et b/libo2dlm/o2dlm_err.et
index 184e295..9b757c8 100644
--- a/libo2dlm/o2dlm_err.et
+++ b/libo2dlm/o2dlm_err.et
@@ -114,4 +114,7 @@ ec O2DLM_ET_DOMAIN_BUSY,
ec O2DLM_ET_BAST_UNSUPPORTED,
"This environment does not support BASTs"
+ec O2DLM_ET_LVB_INVALID,
+ "The LVB is not valid"
+
end
--
1.6.6.1
More information about the Ocfs2-tools-devel
mailing list