about summary refs log tree commit diff
path: root/pkgs/tools/filesystems/xfsdump/remove-dmapapi.patch
blob: ebfb3e19dfd89ffe8bc01969ec6a0e2c53daf70f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
diff --git a/doc/xfsdump.html b/doc/xfsdump.html
index d4d157f..2c9324b 100644
--- a/doc/xfsdump.html
+++ b/doc/xfsdump.html
@@ -1092,7 +1092,6 @@ the size of the hash table.
         bool_t p_ownerpr - whether to restore directory owner/group attributes
         bool_t p_fullpr - whether restoring a full level 0 non-resumed dump
         bool_t p_ignoreorphpr - set if positive subtree or interactive
-        bool_t p_restoredmpr - restore DMI event settings
 </pre>
 <p>
 The hash table maps the inode number to the tree node. It is a
diff --git a/po/de.po b/po/de.po
index 62face8..bdf47d1 100644
--- a/po/de.po
+++ b/po/de.po
@@ -3972,11 +3972,6 @@ msgstr ""
 msgid "no additional media objects needed\n"
 msgstr "keine zusätzlichen Mediendateien benötigt\n"
 
-#: .././restore/content.c:9547
-#, c-format
-msgid "fssetdm_by_handle of %s failed %s\n"
-msgstr "fssetdm_by_handle von %s fehlgeschlagen %s\n"
-
 #: .././restore/content.c:9566
 #, c-format
 msgid "%s quota information written to '%s'\n"
diff --git a/po/pl.po b/po/pl.po
index 3cba8d6..ba25420 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -3455,11 +3455,6 @@ msgstr "nie są potrzebne dodatkowe obiekty nośnika\n"
 msgid "path_to_handle of %s failed:%s\n"
 msgstr "path_to_handle na %s nie powiodło się: %s\n"
 
-#: .././restore/content.c:9723
-#, c-format
-msgid "fssetdm_by_handle of %s failed %s\n"
-msgstr "fssetdm_by_handle na %s nie powiodło się: %s\n"
-
 #: .././restore/content.c:9742
 #, c-format
 msgid "%s quota information written to '%s'\n"
diff --git a/restore/content.c b/restore/content.c
index 6b22965..e9b0a07 100644
--- a/restore/content.c
+++ b/restore/content.c
@@ -477,9 +477,6 @@ struct pers {
 			/* how many pages following the header page are reserved
 			 * for the subtree descriptors
 			 */
-		bool_t restoredmpr;
-			/* restore DMAPI event settings
-			 */
 		bool_t restoreextattrpr;
 			/* restore extended attributes
 			 */
@@ -858,7 +855,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 ****************************/
@@ -894,7 +890,6 @@ content_init(int argc, char *argv[], size64_t vmsz)
 	bool_t changepr;/* cmd line overwrite inhibit specification */
 	bool_t interpr;	/* cmd line interactive mode requested */
 	bool_t ownerpr;	/* cmd line chown/chmod requested */
-	bool_t restoredmpr; /* cmd line restore dm api attrs specification */
 	bool_t restoreextattrpr; /* cmd line restore extended attr spec */
 	bool_t sesscpltpr; /* force completion of prev interrupted session */
 	ix_t stcnt;	/* cmd line number of subtrees requested */
@@ -956,7 +951,6 @@ content_init(int argc, char *argv[], size64_t vmsz)
 	newerpr = BOOL_FALSE;
 	changepr = BOOL_FALSE;
 	ownerpr = BOOL_FALSE;
-	restoredmpr = BOOL_FALSE;
 	restoreextattrpr = BOOL_TRUE;
 	sesscpltpr = BOOL_FALSE;
 	stcnt = 0;
@@ -1162,8 +1156,11 @@ content_init(int argc, char *argv[], size64_t vmsz)
 			tranp->t_noinvupdatepr = BOOL_TRUE;
 			break;
 		case GETOPT_SETDM:
-			restoredmpr = BOOL_TRUE;
-			break;
+			mlog(MLOG_NORMAL | MLOG_ERROR, _(
+			      "-%c option no longer supported\n"),
+			      GETOPT_SETDM);
+			usage();
+			return BOOL_FALSE;
 		case GETOPT_ALERTPROG:
 			if (!optarg || optarg[0] == '-') {
 				mlog(MLOG_NORMAL | MLOG_ERROR, _(
@@ -1574,12 +1571,6 @@ content_init(int argc, char *argv[], size64_t vmsz)
 	}
 
 	if (persp->a.valpr) {
-		if (restoredmpr && persp->a.restoredmpr != restoredmpr) {
-			mlog(MLOG_NORMAL | MLOG_ERROR, _(
-			     "-%c cannot reset flag from previous restore\n"),
-			      GETOPT_SETDM);
-			return BOOL_FALSE;
-		}
 		if (!restoreextattrpr &&
 		       persp->a.restoreextattrpr != restoreextattrpr) {
 			mlog(MLOG_NORMAL | MLOG_ERROR, _(
@@ -1734,7 +1725,6 @@ content_init(int argc, char *argv[], size64_t vmsz)
 			persp->a.newerpr = newerpr;
 			persp->a.newertime = newertime;
 		}
-		persp->a.restoredmpr = restoredmpr;
 		if (!persp->a.dstdirisxfspr) {
 			restoreextattrpr = BOOL_FALSE;
 		}
@@ -2365,7 +2355,6 @@ content_stream_restore(ix_t thrdix)
 					scrhdrp->cih_inomap_nondircnt,
 					tranp->t_vmsz,
 					fullpr,
-					persp->a.restoredmpr,
 					persp->a.dstdirisxfspr,
 					grhdrp->gh_version,
 					tranp->t_truncategenpr);
@@ -7549,12 +7538,6 @@ restore_reg(drive_t *drivep,
 		}
 	}
 
-	if (persp->a.dstdirisxfspr && persp->a.restoredmpr) {
-		HsmBeginRestoreFile(bstatp,
-				     *fdp,
-				     &strctxp->sc_hsmflags);
-	}
-
 	return BOOL_TRUE;
 }
 
@@ -7726,26 +7709,6 @@ restore_complete_reg(stream_context_t *strcxtp)
 		      strerror(errno));
 	}
 
-	if (persp->a.dstdirisxfspr && persp->a.restoredmpr) {
-		fsdmidata_t fssetdm;
-
-		/* Set the DMAPI Fields. */
-		fssetdm.fsd_dmevmask = bstatp->bs_dmevmask;
-		fssetdm.fsd_padding = 0;
-		fssetdm.fsd_dmstate = bstatp->bs_dmstate;
-
-		rval = ioctl(fd, XFS_IOC_FSSETDM, (void *)&fssetdm);
-		if (rval) {
-			mlog(MLOG_NORMAL | MLOG_WARNING,
-			      _("attempt to set DMI attributes of %s "
-			      "failed: %s\n"),
-			      path,
-			      strerror(errno));
-		}
-
-		HsmEndRestoreFile(path, fd, &strcxtp->sc_hsmflags);
-	}
-
 	/* set any extended inode flags that couldn't be set
 	 * prior to restoring the data.
 	 */
@@ -8064,17 +8027,6 @@ restore_symlink(drive_t *drivep,
 				      strerror(errno));
 			}
 		}
-
-		if (persp->a.restoredmpr) {
-		fsdmidata_t fssetdm;
-
-		/*	Restore DMAPI fields. */
-
-		fssetdm.fsd_dmevmask = bstatp->bs_dmevmask;
-		fssetdm.fsd_padding = 0;
-		fssetdm.fsd_dmstate = bstatp->bs_dmstate;
-		rval = do_fssetdm_by_handle(path, &fssetdm);
-		}
 	}
 
 	return BOOL_TRUE;
@@ -8777,7 +8729,7 @@ restore_extattr(drive_t *drivep,
 		}
 		assert(nread == (int)(recsz - EXTATTRHDR_SZ));
 
-		if (!persp->a.restoreextattrpr && !persp->a.restoredmpr) {
+		if (!persp->a.restoreextattrpr) {
 			continue;
 		}
 
@@ -8796,19 +8748,6 @@ restore_extattr(drive_t *drivep,
 			}
 		} else if (isfilerestored && path[0] != '\0') {
 			setextattr(path, ahdrp);
-
-			if (persp->a.dstdirisxfspr && persp->a.restoredmpr) {
-				int flag = 0;
-				char *attrname = (char *)&ahdrp[1];
-				if (ahdrp->ah_flags & EXTATTRHDR_FLAGS_ROOT)
-					flag = ATTR_ROOT;
-				else if (ahdrp->ah_flags & EXTATTRHDR_FLAGS_SECURE)
-					flag = ATTR_SECURE;
-
-				HsmRestoreAttribute(flag,
-						     attrname,
-						     &strctxp->sc_hsmflags);
-			}
 		}
 	}
 	/* NOTREACHED */
@@ -9709,32 +9648,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)
 {
diff --git a/restore/tree.c b/restore/tree.c
index 0670318..5429b74 100644
--- a/restore/tree.c
+++ b/restore/tree.c
@@ -108,9 +108,6 @@ struct treePersStorage {
 	bool_t p_ignoreorphpr;
 		/* set if positive subtree or interactive
 		 */
-	bool_t p_restoredmpr;
-		/* restore DMI event settings
-		 */
 	bool_t p_truncategenpr;
 		/* truncate inode generation number (for compatibility
 		 * with xfsdump format 2 and earlier)
@@ -348,7 +345,6 @@ tree_init(char *hkdir,
 	   size64_t nondircnt,
 	   size64_t vmsz,
 	   bool_t fullpr,
-	   bool_t restoredmpr,
 	   bool_t dstdirisxfspr,
 	   uint32_t dumpformat,
 	   bool_t truncategenpr)
@@ -508,10 +504,6 @@ tree_init(char *hkdir,
 	 */
 	persp->p_fullpr = fullpr;
 
-	/* record if DMI event settings should be restored
-	 */
-	persp->p_restoredmpr = restoredmpr;
-
 	/* record if truncated generation numbers are required
 	 */
 	if (dumpformat < GLOBAL_HDR_VERSION_3) {
@@ -2550,31 +2542,6 @@ setdirattr(dah_t dah, char *path)
 		}
 	}
 
-	if (tranp->t_dstdirisxfspr && persp->p_restoredmpr) {
-		fsdmidata_t fssetdm;
-
-		fssetdm.fsd_dmevmask = dirattr_get_dmevmask(dah);
-		fssetdm.fsd_padding = 0;	/* not used */
-		fssetdm.fsd_dmstate = (uint16_t)dirattr_get_dmstate(dah);
-
-		/* restore DMAPI event settings etc.
-		 */
-		rval = ioctl(fd,
-			      XFS_IOC_FSSETDM,
-			      (void *)&fssetdm);
-		if (rval) {
-			mlog(errno == EINVAL
-			      ?
-			      (MLOG_NITTY + 1) | MLOG_TREE
-			      :
-			      MLOG_NITTY | MLOG_TREE,
-			      "set DMI attributes"
-			      " of %s failed: %s\n",
-			      path,
-			      strerror(errno));
-		}
-	}
-
 	utimbuf.actime = dirattr_get_atime(dah);
 	utimbuf.modtime = dirattr_get_mtime(dah);
 	rval = utime(path, &utimbuf);
diff --git a/restore/tree.h b/restore/tree.h
index 4f9ffe8..bf66e3d 100644
--- a/restore/tree.h
+++ b/restore/tree.h
@@ -31,7 +31,6 @@ extern bool_t tree_init(char *hkdir,
 			 size64_t nondircnt,
 			 size64_t vmsz,
 			 bool_t fullpr,
-			 bool_t restoredmpr,
 			 bool_t dstdirisxfspr,
 			 uint32_t dumpformat,
 			 bool_t truncategenpr);