%
% GREAT TABLE TUTORIAL
% http://www.andy-roberts.net/misc/latex/latextutorial4.html
%

%  & \multicolumn{5}{\bf ext2 + Membrane} \\
{\scriptsize
\begin{table}[!t]
\vspace{-0.2in}
\begin{center}
\begin{tabular}{l@{\tbls}|l@{\tbls}|l@{\tbls}|c@{\tbls}c@{\tbls}|c@{\tbls}c@{\tbls}}

% The top line with ext2 and NoFS
 & & & \multicolumn{2}{|c|}{\bf ext2} & \multicolumn{2}{|c}{\bf NoFS} \\

% Second line with column headings
{\bf System call} & {\bf Blocks dropped} &  {\bf Error} & \rotatebox{90}{\bf Detected?} & \rotatebox{90}{\bf Action?} & \rotatebox{90}{\bf Detected?} & \rotatebox{90}{\bf Action?} \\
\hline
& & & & & & \\
%\vspace{0.01in}
\input{tbl-reltests}
\end{tabular}
\end{center}

\vspace{-0.15in}

%General key for the legend table
\begin{center}
{%\footnotesize
%\begin{center}
\begin{tabular}{cl|cl}
\multicolumn{4}{c}{\bf General Key}  \\
\hline
\emph{C} & Child &  \emph{inode} & File inode \\  
\emph{P} & Parent & \emph{dir} & Directory block \\
\emph{O} & Old file/parent &  \emph{data} & Data block \\  
\emph{N} & New file/parent & \emph{ind} & Indirect block \\  
\end{tabular}
%\end{center}
}
%

\vspace{0.05in}
%\begin{center}
%\begin{minipage}{2.10in}
{%\footnotesize
%\begin{center}
\begin{tabular}{cl|cl}
\multicolumn{2}{c}{\bf Key for Error}  & \multicolumn{2}{c}{\bf Key for Action}\\
\hline
 \emph{BD} & Bad dir entry & \emph{R} & Block/inode reclaimed on scan \\  
 \emph{OB} & Orphan block & \emph{EI} & Error on inode access \\  
 \emph{OI} & Orphan inode & \emph{ED} & Error on data access \\  
 \emph{HL} & Wrong hard link count &\emph{EN} & Error on access via new path  \\  
 \emph{GD} & Garbage data & \emph{EO} & Error on access via old path \\  
 \emph{TP} & 2 inodes refer to 1 block & \emph{EB} & Error on block access\\  
\end{tabular}
}
\end{center}
%\end{minipage}

\vspace{-0.17in}
{\footnotesize
\mycaption{table-reliability}{Reliability testing}{The table shows how NoFS reacts to various inconsistencies that occur due to updates not reaching the disk. The behavior of ext2 is also shown. NoFS detects all inconsistencies and reports an error, while ext2 lets most of the errors pass by undetected.}
}
\vspace{-0.2in}
\end{table}
}

