@@ -91,41 +91,37 @@ xfs_attri_log_nameval_alloc(
9191 name_len + new_name_len + value_len +
9292 new_value_len );
9393
94- nv -> name .i_addr = nv + 1 ;
95- nv -> name .i_len = name_len ;
96- nv -> name .i_type = XLOG_REG_TYPE_ATTR_NAME ;
97- memcpy (nv -> name .i_addr , name , name_len );
94+ nv -> name .iov_base = nv + 1 ;
95+ nv -> name .iov_len = name_len ;
96+ memcpy (nv -> name .iov_base , name , name_len );
9897
9998 if (new_name_len ) {
100- nv -> new_name .i_addr = nv -> name .i_addr + name_len ;
101- nv -> new_name .i_len = new_name_len ;
102- memcpy (nv -> new_name .i_addr , new_name , new_name_len );
99+ nv -> new_name .iov_base = nv -> name .iov_base + name_len ;
100+ nv -> new_name .iov_len = new_name_len ;
101+ memcpy (nv -> new_name .iov_base , new_name , new_name_len );
103102 } else {
104- nv -> new_name .i_addr = NULL ;
105- nv -> new_name .i_len = 0 ;
103+ nv -> new_name .iov_base = NULL ;
104+ nv -> new_name .iov_len = 0 ;
106105 }
107- nv -> new_name .i_type = XLOG_REG_TYPE_ATTR_NEWNAME ;
108106
109107 if (value_len ) {
110- nv -> value .i_addr = nv -> name .i_addr + name_len + new_name_len ;
111- nv -> value .i_len = value_len ;
112- memcpy (nv -> value .i_addr , value , value_len );
108+ nv -> value .iov_base = nv -> name .iov_base + name_len + new_name_len ;
109+ nv -> value .iov_len = value_len ;
110+ memcpy (nv -> value .iov_base , value , value_len );
113111 } else {
114- nv -> value .i_addr = NULL ;
115- nv -> value .i_len = 0 ;
112+ nv -> value .iov_base = NULL ;
113+ nv -> value .iov_len = 0 ;
116114 }
117- nv -> value .i_type = XLOG_REG_TYPE_ATTR_VALUE ;
118115
119116 if (new_value_len ) {
120- nv -> new_value .i_addr = nv -> name .i_addr + name_len +
117+ nv -> new_value .iov_base = nv -> name .iov_base + name_len +
121118 new_name_len + value_len ;
122- nv -> new_value .i_len = new_value_len ;
123- memcpy (nv -> new_value .i_addr , new_value , new_value_len );
119+ nv -> new_value .iov_len = new_value_len ;
120+ memcpy (nv -> new_value .iov_base , new_value , new_value_len );
124121 } else {
125- nv -> new_value .i_addr = NULL ;
126- nv -> new_value .i_len = 0 ;
122+ nv -> new_value .iov_base = NULL ;
123+ nv -> new_value .iov_len = 0 ;
127124 }
128- nv -> new_value .i_type = XLOG_REG_TYPE_ATTR_NEWVALUE ;
129125
130126 refcount_set (& nv -> refcount , 1 );
131127 return nv ;
@@ -170,21 +166,21 @@ xfs_attri_item_size(
170166
171167 * nvecs += 2 ;
172168 * nbytes += sizeof (struct xfs_attri_log_format ) +
173- xlog_calc_iovec_len (nv -> name .i_len );
169+ xlog_calc_iovec_len (nv -> name .iov_len );
174170
175- if (nv -> new_name .i_len ) {
171+ if (nv -> new_name .iov_len ) {
176172 * nvecs += 1 ;
177- * nbytes += xlog_calc_iovec_len (nv -> new_name .i_len );
173+ * nbytes += xlog_calc_iovec_len (nv -> new_name .iov_len );
178174 }
179175
180- if (nv -> value .i_len ) {
176+ if (nv -> value .iov_len ) {
181177 * nvecs += 1 ;
182- * nbytes += xlog_calc_iovec_len (nv -> value .i_len );
178+ * nbytes += xlog_calc_iovec_len (nv -> value .iov_len );
183179 }
184180
185- if (nv -> new_value .i_len ) {
181+ if (nv -> new_value .iov_len ) {
186182 * nvecs += 1 ;
187- * nbytes += xlog_calc_iovec_len (nv -> new_value .i_len );
183+ * nbytes += xlog_calc_iovec_len (nv -> new_value .iov_len );
188184 }
189185}
190186
@@ -212,31 +208,36 @@ xfs_attri_item_format(
212208 * the log recovery.
213209 */
214210
215- ASSERT (nv -> name .i_len > 0 );
211+ ASSERT (nv -> name .iov_len > 0 );
216212 attrip -> attri_format .alfi_size ++ ;
217213
218- if (nv -> new_name .i_len > 0 )
214+ if (nv -> new_name .iov_len > 0 )
219215 attrip -> attri_format .alfi_size ++ ;
220216
221- if (nv -> value .i_len > 0 )
217+ if (nv -> value .iov_len > 0 )
222218 attrip -> attri_format .alfi_size ++ ;
223219
224- if (nv -> new_value .i_len > 0 )
220+ if (nv -> new_value .iov_len > 0 )
225221 attrip -> attri_format .alfi_size ++ ;
226222
227223 xlog_copy_iovec (lv , & vecp , XLOG_REG_TYPE_ATTRI_FORMAT ,
228224 & attrip -> attri_format ,
229225 sizeof (struct xfs_attri_log_format ));
230- xlog_copy_from_iovec (lv , & vecp , & nv -> name );
231226
232- if ( nv -> new_name . i_len > 0 )
233- xlog_copy_from_iovec ( lv , & vecp , & nv -> new_name );
227+ xlog_copy_iovec ( lv , & vecp , XLOG_REG_TYPE_ATTR_NAME , nv -> name . iov_base ,
228+ nv -> name . iov_len );
234229
235- if (nv -> value .i_len > 0 )
236- xlog_copy_from_iovec (lv , & vecp , & nv -> value );
230+ if (nv -> new_name .iov_len > 0 )
231+ xlog_copy_iovec (lv , & vecp , XLOG_REG_TYPE_ATTR_NEWNAME ,
232+ nv -> new_name .iov_base , nv -> new_name .iov_len );
237233
238- if (nv -> new_value .i_len > 0 )
239- xlog_copy_from_iovec (lv , & vecp , & nv -> new_value );
234+ if (nv -> value .iov_len > 0 )
235+ xlog_copy_iovec (lv , & vecp , XLOG_REG_TYPE_ATTR_VALUE ,
236+ nv -> value .iov_base , nv -> value .iov_len );
237+
238+ if (nv -> new_value .iov_len > 0 )
239+ xlog_copy_iovec (lv , & vecp , XLOG_REG_TYPE_ATTR_NEWVALUE ,
240+ nv -> new_value .iov_base , nv -> new_value .iov_len );
240241}
241242
242243/*
@@ -383,22 +384,22 @@ xfs_attr_log_item(
383384 attrp -> alfi_ino = args -> dp -> i_ino ;
384385 ASSERT (!(attr -> xattri_op_flags & ~XFS_ATTRI_OP_FLAGS_TYPE_MASK ));
385386 attrp -> alfi_op_flags = attr -> xattri_op_flags ;
386- attrp -> alfi_value_len = nv -> value .i_len ;
387+ attrp -> alfi_value_len = nv -> value .iov_len ;
387388
388389 switch (xfs_attr_log_item_op (attrp )) {
389390 case XFS_ATTRI_OP_FLAGS_PPTR_REPLACE :
390- ASSERT (nv -> value .i_len == nv -> new_value .i_len );
391+ ASSERT (nv -> value .iov_len == nv -> new_value .iov_len );
391392
392393 attrp -> alfi_igen = VFS_I (args -> dp )-> i_generation ;
393- attrp -> alfi_old_name_len = nv -> name .i_len ;
394- attrp -> alfi_new_name_len = nv -> new_name .i_len ;
394+ attrp -> alfi_old_name_len = nv -> name .iov_len ;
395+ attrp -> alfi_new_name_len = nv -> new_name .iov_len ;
395396 break ;
396397 case XFS_ATTRI_OP_FLAGS_PPTR_REMOVE :
397398 case XFS_ATTRI_OP_FLAGS_PPTR_SET :
398399 attrp -> alfi_igen = VFS_I (args -> dp )-> i_generation ;
399400 fallthrough ;
400401 default :
401- attrp -> alfi_name_len = nv -> name .i_len ;
402+ attrp -> alfi_name_len = nv -> name .iov_len ;
402403 break ;
403404 }
404405
@@ -687,14 +688,14 @@ xfs_attri_recover_work(
687688 args -> dp = ip ;
688689 args -> geo = mp -> m_attr_geo ;
689690 args -> whichfork = XFS_ATTR_FORK ;
690- args -> name = nv -> name .i_addr ;
691- args -> namelen = nv -> name .i_len ;
692- args -> new_name = nv -> new_name .i_addr ;
693- args -> new_namelen = nv -> new_name .i_len ;
694- args -> value = nv -> value .i_addr ;
695- args -> valuelen = nv -> value .i_len ;
696- args -> new_value = nv -> new_value .i_addr ;
697- args -> new_valuelen = nv -> new_value .i_len ;
691+ args -> name = nv -> name .iov_base ;
692+ args -> namelen = nv -> name .iov_len ;
693+ args -> new_name = nv -> new_name .iov_base ;
694+ args -> new_namelen = nv -> new_name .iov_len ;
695+ args -> value = nv -> value .iov_base ;
696+ args -> valuelen = nv -> value .iov_len ;
697+ args -> new_value = nv -> new_value .iov_base ;
698+ args -> new_valuelen = nv -> new_value .iov_len ;
698699 args -> attr_filter = attrp -> alfi_attr_filter & XFS_ATTRI_FILTER_MASK ;
699700 args -> op_flags = XFS_DA_OP_RECOVERY | XFS_DA_OP_OKNOENT |
700701 XFS_DA_OP_LOGGED ;
@@ -751,8 +752,8 @@ xfs_attr_recover_work(
751752 */
752753 attrp = & attrip -> attri_format ;
753754 if (!xfs_attri_validate (mp , attrp ) ||
754- !xfs_attr_namecheck (attrp -> alfi_attr_filter , nv -> name .i_addr ,
755- nv -> name .i_len ))
755+ !xfs_attr_namecheck (attrp -> alfi_attr_filter , nv -> name .iov_base ,
756+ nv -> name .iov_len ))
756757 return - EFSCORRUPTED ;
757758
758759 attr = xfs_attri_recover_work (mp , dfp , attrp , & ip , nv );
0 commit comments