<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body>
<br>
Im hoping someone with a better memory or whos in a position to check this a bit better (no computer access this second) will speak up, but...<br>
<br>
To a first approximation, yes, that sounds close.&nbsp; Probably missing something but...<br>
<br>
Also, not sure about fid and fld.&nbsp; Might be needed on the server...?&nbsp; But you will of course find you when you try.<br>
<br>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> NeilBrown &lt;neilb@suse.com&gt;<br>
<b>Sent:</b> Wednesday, June 20, 2018 10:00:54 PM<br>
<b>To:</b> Patrick Farrell; James Simmons<br>
<b>Cc:</b> Lustre Development List<br>
<b>Subject:</b> Re: [lustre-devel] [PATCH 00/24] lustre - more cleanups including module reduction.</font>
<div>&nbsp;</div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On Thu, Jun 21 2018, Patrick Farrell wrote:<br>
<br>
&gt; Huh?&nbsp; Very little of the client is used on the server.&nbsp; The vast majority of the client is llite, vvp, then lov, osc, and mdc.&nbsp; These are not used on the servers at all, the modules won't even be loaded.<br>
&gt;<br>
&gt;<br>
&gt; Servers are definitely *not* clients of one another in the sense of &quot;Lustre clients&quot;.&nbsp; They interact with each other, but in a manner very different from client to server.<br>
&gt;<br>
&gt; The ldlm and ptlrpc layers are *partly* shared, and of course, the networking from lnet down is.&nbsp; But that's not &quot;the client&quot;.<br>
&gt;<br>
&gt; The statement that the server layer is a middle layer on top of the client code doesn't make any sense to me.&nbsp; It's like this:<br>
<br>
So llite fid fld lmv lov mdc mgc osc and obdclass<br>
can all be in a &quot;lustre&quot; module.<br>
ldlm and ptlrpc should be in a separate &quot;ptlrpc&quot; module.<br>
And lnet and the klnds are also separate.<br>
<br>
On the server side we would have<br>
&nbsp; lod mdd mdt mgs ofd osp ost<br>
<br>
does that seem approximately right?<br>
<br>
Thanks,<br>
NeilBrown<br>
<br>
<br>
&gt;<br>
&gt;<br>
&gt; vfs<br>
&gt; client code<br>
&gt;<br>
&gt; ptlrpc<br>
&gt;<br>
&gt; networking<br>
&gt;<br>
&gt; ------ PHYSICAL BOUNDARY --------<br>
&gt; networking<br>
&gt;<br>
&gt; ptlrpc<br>
&gt;<br>
&gt; server code<br>
&gt;<br>
&gt; ldiskfs<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; with LDLM also being explicitly shared, though client &amp; server code is not all shared.&nbsp; Very little to nothing outside of the networking &amp; ldlm layers is shared.<br>
&gt;<br>
&gt; ________________________________<br>
&gt; From: lustre-devel &lt;lustre-devel-bounces@lists.lustre.org&gt; on behalf of James Simmons &lt;jsimmons@infradead.org&gt;<br>
&gt; Sent: Wednesday, June 20, 2018 8:48:07 PM<br>
&gt; To: NeilBrown<br>
&gt; Cc: Oleg Drokin; Andreas Dilger; Lustre Development List<br>
&gt; Subject: Re: [lustre-devel] [PATCH 00/24] lustre - more cleanups including module reduction.<br>
&gt;<br>
&gt;<br>
&gt;&gt; Here are a bunch more cleanups that will appear in my lustre-testing<br>
&gt;&gt; tree shortly.<br>
&gt;&gt;<br>
&gt;&gt; The interesting stuff is some enhancements to kbuild to let us<br>
&gt;&gt; build modules from multiple directories.<br>
&gt;&gt; I've used that to clean up the build of ptlrpc&#43;ldlm and to<br>
&gt;&gt; merge libcfs and lnet into the one module - I've left the lnds<br>
&gt;&gt; separate.<br>
&gt;<br>
&gt; That looks pretty good. It doesn't apply to the stable lustre tree but I<br>
&gt; did try it out on lustre-testing. The module building does seem to<br>
&gt; function well. Only thing not clear is if do a<br>
&gt;<br>
&gt; make SUBDIRS=drivers/staging/lustre/lustre/lmv modules<br>
&gt;<br>
&gt; do lmv.a and the other *.a files get relinked int lustre.ko ?<br>
&gt;<br>
&gt;&gt; I've haven't progressed further in lustre because I'm not sure which -<br>
&gt;&gt; if any - modules are also used by the server.<br>
&gt;&gt; I'd rather shared code was in a separate module to client-only.<br>
&gt;&gt;<br>
&gt;&gt; Which parts of lustre/lustre/* are also used by server?<br>
&gt;<br>
&gt; Basically all the client code is reused on the server except for llite.<br>
&gt; The reason is each server type MDS, MGS, or OSS is treated as a client<br>
&gt; to each other. So in affect the server code is a middle layer level on<br>
&gt; top of the client code.<br>
&gt;<br>
&gt;&gt; After that, it is all fairly simple cleanups.<br>
&gt;&gt;<br>
&gt;&gt; I plan to submit the kbuild stuff upstream next week.<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt; NeilBrown<br>
&gt;&gt;<br>
&gt;&gt; ---<br>
&gt;&gt;<br>
&gt;&gt; NeilBrown (24):<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kbuild: detect directories in components of a module.<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kbuild: treat a directory listed in a composite object as foo/mod.a<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kbuild: support building of per-directory mod.a<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kbuild: disable KBUILD_MODNAME when building for mod.a<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kbuild: Add documentation for modobj-m<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: build ldlm in the ldlm directory.<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: merge libcfs module into lnet.<br>
&gt;<br>
&gt; This seems to work when I tried the lustre-testing tree. I did see<br>
&gt; regression to related to this work in that tree.<br>
&gt;<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: use truncate_inode_page in place of truncate_complete_page<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: don't use spare bits in iattr.ia_valid<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: remove lustre_patchless_compat.h<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: discard current_n*groups macros.<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: discard LTIME_S macro<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: discard NO_QUOTA and QUOTA_OK<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: discard ext2* bit operations<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: centralize TIMES_SET_FLAGS<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: remove redefinition of module_init().<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: remove lustre_compat.h<br>
&gt;<br>
&gt; The first two patches of the above seem to break things. The first one was<br>
&gt; pointed out so I avoid issues in my testing by changing the patch to just<br>
&gt; move truncate_inode_page() to lustre_mdc.h for now. The next patch does<br>
&gt; break things.<br>
&gt;<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre/lnet: move tracefile locking from linux-tracefile.c to tracefile.c<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: open code cfs_trace_max_debug_mb() into cfs_trace_set_debug_mb()<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: move tcd locking across to tracefile.c<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: move remainder of linux-tracefile.c to tracefile.c<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: fold cfs_tracefile_*_arch into their only callers.<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: renamed CFS_TCD_TYPE_MAX to CFS_TCD_TYPE_CNT<br>
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lustre: discard TCD_MAX_TYPES<br>
&gt;<br>
&gt; I see breakage in this code as well.<br>
&gt;<br>
&gt;&gt;&nbsp; Documentation/kbuild/makefiles.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 65 &#43;&#43;&#43;&#43;&#43;<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lnet/Makefile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 7 -<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lnet/libcfs/Makefile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 7 -<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lnet/libcfs/debug.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 6<br>
&gt;&gt;&nbsp; .../staging/lustre/lnet/libcfs/linux-tracefile.c&nbsp;&nbsp; |&nbsp; 258 --------------------<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lnet/libcfs/module.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 26 &#43;-<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lnet/libcfs/tracefile.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 241 &#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;--<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lnet/libcfs/tracefile.h&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 40 ---<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lnet/lnet/Makefile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 11 -<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lnet/lnet/module.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 9 &#43;<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/fid/lproc_fid.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/fld/lproc_fld.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/include/cl_object.h&nbsp; |&nbsp;&nbsp;&nbsp; 6<br>
&gt;&gt;&nbsp; .../staging/lustre/lustre/include/lustre_compat.h&nbsp; |&nbsp;&nbsp; 82 ------<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/include/lustre_net.h |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; .../lustre/include/lustre_patchless_compat.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 68 -----<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/include/obd.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 7 &#43;<br>
&gt;&gt;&nbsp; .../staging/lustre/lustre/include/obd_support.h&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/ldlm/Makefile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 11 &#43;<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/llite/dir.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 3<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/llite/file.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 36 &#43;--<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/llite/lcommon_cl.c&nbsp;&nbsp; |&nbsp;&nbsp; 11 -<br>
&gt;&gt;&nbsp; .../staging/lustre/lustre/llite/llite_internal.h&nbsp;&nbsp; |&nbsp;&nbsp; 13 &#43;<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/llite/llite_lib.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 52 &#43;&#43;--<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/llite/namei.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 16 &#43;<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/llite/vvp_io.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 8 -<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/llite/vvp_object.c&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 6<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/lmv/lmv_intent.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 6<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/lmv/lmv_obd.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 21 &#43;-<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/lov/lov_io.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 3<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/lov/lov_obd.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 2<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/lov/lov_pack.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/lov/lov_page.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/mdc/mdc_lib.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 19 &#43;<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/mdc/mdc_reint.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 4<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/mdc/mdc_request.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 12 -<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/obdclass/class_obd.c |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/obdclass/llog.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 7 -<br>
&gt;&gt;&nbsp; .../lustre/lustre/obdclass/lprocfs_status.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; .../staging/lustre/lustre/obdclass/obd_config.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/obdclass/obd_mount.c |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/obdclass/obdo.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 10 -<br>
&gt;&gt;&nbsp; .../staging/lustre/lustre/obdecho/echo_client.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/osc/lproc_osc.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/osc/osc_cache.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 4<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/osc/osc_io.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 23 &#43;-<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/osc/osc_quota.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 4<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/osc/osc_request.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/ptlrpc/Makefile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 12 -<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/ptlrpc/import.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/ptlrpc/sec.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 15 &#43;<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/ptlrpc/sec_plain.c&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; drivers/staging/lustre/lustre/ptlrpc/service.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 1<br>
&gt;&gt;&nbsp; scripts/Makefile.build&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 57 &#43;&#43;&#43;-<br>
&gt;&gt;&nbsp; scripts/Makefile.lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 63 &#43;&#43;&#43;--<br>
&gt;&gt;&nbsp; 57 files changed, 584 insertions(&#43;), 685 deletions(-)<br>
&gt;&gt;&nbsp; delete mode 100644 drivers/staging/lustre/lnet/libcfs/linux-tracefile.c<br>
&gt;&gt;&nbsp; delete mode 100644 drivers/staging/lustre/lustre/include/lustre_compat.h<br>
&gt;&gt;&nbsp; delete mode 100644 drivers/staging/lustre/lustre/include/lustre_patchless_compat.h<br>
&gt;&gt;&nbsp; create mode 100644 drivers/staging/lustre/lustre/ldlm/Makefile<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Signature<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt; _______________________________________________<br>
&gt; lustre-devel mailing list<br>
&gt; lustre-devel@lists.lustre.org<br>
&gt; <a href="http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org">http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org</a><br>
</div>
</span></font></div>
</body>
</html>