Suppose "foobar" is an nfs-fedfs junction.

If I explicitly specify the junction type on the command line with
"nfsref remove -t nfs-fedfs foobar", the FSN listed in the junction
"foobar" is deleted on the NSDB.  If I let "nfsref" guess what kind
of junction "foobar is with "nfsref remove foobar", the FSN is not
removed.

Remove the junction's FSN when the junction type is not specified.

nfsref_remove_unspecified() is moved to avoid adding a forward
declaration for nfsref_remove_delete_fsn().

Signed-off-by: Chuck Lever <[email protected]>
---

 src/nfsref/remove.c |   78 ++++++++++++++++++++++++++-------------------------
 1 files changed, 39 insertions(+), 39 deletions(-)

diff --git a/src/nfsref/remove.c b/src/nfsref/remove.c
index 3e1fad7..b4394c1 100644
--- a/src/nfsref/remove.c
+++ b/src/nfsref/remove.c
@@ -60,45 +60,6 @@ nfsref_remove_help(const char *progname)
 }
 
 /**
- * Remove any NFS junction information
- *
- *
- * @param junct_path NUL-terminated C string containing pathname of junction
- * @return program exit status
- */
-static int
-nfsref_remove_unspecified(const char *junct_path)
-{
-       FedFsStatus retval;
-
-       xlog(D_GENERAL, "%s: Removing junction from %s",
-               __func__, junct_path);
-
-       retval = nfs_delete_junction(junct_path);
-       if (retval != FEDFS_OK) {
-               if (retval != FEDFS_ERR_NOTJUNCT)
-                       goto out_err;
-               retval = fedfs_delete_junction(junct_path);
-               if (retval != FEDFS_OK)
-                       goto out_err;
-       }
-
-       printf("Removed junction from %s\n", junct_path);
-       return EXIT_SUCCESS;
-
-out_err:
-       switch (retval) {
-       case FEDFS_ERR_NOTJUNCT:
-               xlog(L_ERROR, "No junction information found in %s", 
junct_path);
-               break;
-       default:
-               xlog(L_ERROR, "Failed to delete %s: %s",
-                       junct_path, nsdb_display_fedfsstatus(retval));
-       }
-       return EXIT_FAILURE;
-}
-
-/**
  * Remove an NFS locations-style junction
  *
  * @param junct_path NUL-terminated C string containing pathname of junction
@@ -296,6 +257,45 @@ nfsref_remove_nfs_fedfs(const char *junct_path)
 }
 
 /**
+ * Remove any NFS junction information
+ *
+ * @param junct_path NUL-terminated C string containing pathname of junction
+ * @return program exit status
+ */
+static int
+nfsref_remove_unspecified(const char *junct_path)
+{
+       FedFsStatus retval;
+
+       xlog(D_GENERAL, "%s: Removing junction from %s",
+               __func__, junct_path);
+
+       retval = nfs_delete_junction(junct_path);
+       if (retval != FEDFS_OK) {
+               if (retval != FEDFS_ERR_NOTJUNCT)
+                       goto out_err;
+               nfsref_remove_delete_fsn(junct_path);
+               retval = fedfs_delete_junction(junct_path);
+               if (retval != FEDFS_OK)
+                       goto out_err;
+       }
+
+       printf("Removed junction from %s\n", junct_path);
+       return EXIT_SUCCESS;
+
+out_err:
+       switch (retval) {
+       case FEDFS_ERR_NOTJUNCT:
+               xlog(L_ERROR, "No junction information found in %s", 
junct_path);
+               break;
+       default:
+               xlog(L_ERROR, "Failed to delete %s: %s",
+                       junct_path, nsdb_display_fedfsstatus(retval));
+       }
+       return EXIT_FAILURE;
+}
+
+/**
  * Remove an NFS junction
  *
  * @param type type of junction to add


_______________________________________________
fedfs-utils-devel mailing list
[email protected]
https://oss.oracle.com/mailman/listinfo/fedfs-utils-devel

Reply via email to