Fix reference error when writing fsloc data to cache
authorKevin Coffman <kwc@citi.umich.edu>
Tue, 27 Feb 2007 04:26:44 +0000 (15:26 +1100)
committerNeil Brown <neilb@suse.de>
Tue, 27 Feb 2007 04:26:44 +0000 (15:26 +1100)
Use the correct pointer when writing fslocations data to the cache.
Also write the fsloc stuff before the uuid stuff so userland code
will work with or without the uuid kernel patches.

Signed-off-by: Neil Brown <neilb@suse.de>
utils/mountd/cache.c

index a14f4f2..5f0d12a 100644 (file)
@@ -455,6 +455,7 @@ static int dump_to_cache(FILE *f, char *domain, char *path, struct exportent *ex
                qword_printint(f, exp->e_anonuid);
                qword_printint(f, exp->e_anongid);
                qword_printint(f, exp->e_fsid);
+               write_fsloc(f, exp, path);
                if (exp->e_uuid == NULL) {
                        char u[16];
                        if (get_uuid(exp->e_path, NULL, 16, u)) {
@@ -465,7 +466,6 @@ static int dump_to_cache(FILE *f, char *domain, char *path, struct exportent *ex
                        qword_print(f, "uuid");
                        qword_printhex(f, exp->e_uuid, 16);
                }
-               write_fsloc(f, &exp, path);
        }
        return qword_eol(f);
 }