All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bill Kendall <wkendall@sgi.com>
To: xfs@oss.sgi.com
Subject: [PATCH 2/2] use lpath_to_handle when restoring symlinks
Date: Thu, 22 Oct 2009 11:52:32 -0500	[thread overview]
Message-ID: <4AE08DD0.50304@sgi.com> (raw)

Update xfsrestore to use the new lpath_to_handle function
when dealing with symlinks.

Signed-off-by: Bill Kendall <wkendall@sgi.com>

diff --git a/restore/content.c b/restore/content.c
index eb6e78c..99549a8 100644
--- a/restore/content.c
+++ b/restore/content.c
@@ -797,7 +797,6 @@ static void partial_reg(ix_t d_index, xfs_ino_t ino, off64_t fsize,
                          off64_t offset, off64_t sz);
  static bool_t partial_check (xfs_ino_t ino, off64_t fsize);
  static bool_t partial_check2 (partial_rest_t *isptr, off64_t fsize);
-static int do_fssetdm_by_handle( char *path, fsdmidata_t *fdmp);
  static int quotafilecheck(char *type, char *dstdir, char *quotafile);

  /* definition of locally defined global variables ****************************/
@@ -7895,14 +7894,28 @@ restore_symlink( drive_t *drivep,
  		}

  		if ( persp->a.restoredmpr) {
-		fsdmidata_t fssetdm;
-		
-		/*	Restore DMAPI fields. */
+			fsdmidata_t fssetdm;
+			void *hanp;
+			size_t hlen=0;

-		fssetdm.fsd_dmevmask = bstatp->bs_dmevmask;
-		fssetdm.fsd_padding = 0;
-		fssetdm.fsd_dmstate = bstatp->bs_dmstate;
-		rval = do_fssetdm_by_handle(path, &fssetdm);
+			/*	Restore DMAPI fields. */
+			fssetdm.fsd_dmevmask = bstatp->bs_dmevmask;
+			fssetdm.fsd_padding = 0;
+			fssetdm.fsd_dmstate = bstatp->bs_dmstate;
+
+			if (lpath_to_handle(persp->a.dstdir, path, &hanp, &hlen)) {
+				mlog( MLOG_NORMAL | MLOG_WARNING, _(
+					"lpath_to_handle of %s failed: %s\n"),
+					path, strerror( errno ));
+			} else {
+				if (fssetdm_by_handle(hanp, hlen, &fssetdm)) {
+					mlog( MLOG_NORMAL | MLOG_WARNING,
+						_("fssetdm_by_handle of %s "
+						"failed: %s\n"),
+						path, strerror( errno ));
+				}
+				free_handle(hanp, hlen);
+			}
  		}
  	}

@@ -9525,32 +9538,6 @@ display_needed_objects( purp_t purp,
  }

  static int
-do_fssetdm_by_handle(
-	char		*path,
-	fsdmidata_t	*fdmp)
-{
-	void		*hanp;
-	size_t		hlen=0;
-	int		rc;
-
-	if (path_to_handle(path, &hanp, &hlen)) {
-		mlog( MLOG_NORMAL | MLOG_WARNING, _(
-			"path_to_handle of %s failed:%s\n"),
-			path, strerror( errno ));
-		return -1;
-	}
-
-	rc = fssetdm_by_handle(hanp, hlen, fdmp);
-	free_handle(hanp, hlen);
-	if (rc) {
-		mlog( MLOG_NORMAL | MLOG_WARNING, _(
-			"fssetdm_by_handle of %s failed %s\n"),
-			path, strerror( errno ));
-	}
-	return rc;
-}
-
-static int
  quotafilecheck(char *type, char *dstdir, char *quotafile)
  {
  	struct stat s;

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

             reply	other threads:[~2009-10-22 16:50 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-22 16:52 Bill Kendall [this message]
2009-10-23 18:13 ` [PATCH 2/2] use lpath_to_handle when restoring symlinks Alex Elder
2009-10-25  7:05 ` Christoph Hellwig
2009-10-27 15:36   ` Bill Kendall
2009-10-28  3:34     ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AE08DD0.50304@sgi.com \
    --to=wkendall@sgi.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.