attrib.c (fa3cacf544636b2dc48cfb2f277a2071f14d66a2) | attrib.c (195c52bdd5d5ecfdabf5a7c6159efe299e534f84) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * 4 * Copyright (C) 2019-2021 Paragon Software GmbH, All rights reserved. 5 * 6 * TODO: merge attr_set_size/attr_data_get_block/attr_allocate_frame? 7 */ 8 --- 262 unchanged lines hidden (view full) --- 271 align = sbi->cluster_size; 272 if (is_attr_compressed(attr)) 273 align <<= COMPRESSION_UNIT; 274 len = (rsize + align - 1) >> sbi->cluster_bits; 275 276 run_init(run); 277 278 /* make a copy of original attribute */ | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * 4 * Copyright (C) 2019-2021 Paragon Software GmbH, All rights reserved. 5 * 6 * TODO: merge attr_set_size/attr_data_get_block/attr_allocate_frame? 7 */ 8 --- 262 unchanged lines hidden (view full) --- 271 align = sbi->cluster_size; 272 if (is_attr_compressed(attr)) 273 align <<= COMPRESSION_UNIT; 274 len = (rsize + align - 1) >> sbi->cluster_bits; 275 276 run_init(run); 277 278 /* make a copy of original attribute */ |
279 attr_s = ntfs_memdup(attr, asize); | 279 attr_s = kmemdup(attr, asize, GFP_NOFS); |
280 if (!attr_s) { 281 err = -ENOMEM; 282 goto out; 283 } 284 285 if (!len) { 286 /* empty resident -> empty nonresident */ 287 alen = 0; --- 40 unchanged lines hidden (view full) --- 328 al_remove_le(ni, le); 329 330 err = ni_insert_nonresident(ni, attr_s->type, attr_name(attr_s), 331 attr_s->name_len, run, 0, alen, 332 attr_s->flags, &attr, NULL); 333 if (err) 334 goto out3; 335 | 280 if (!attr_s) { 281 err = -ENOMEM; 282 goto out; 283 } 284 285 if (!len) { 286 /* empty resident -> empty nonresident */ 287 alen = 0; --- 40 unchanged lines hidden (view full) --- 328 al_remove_le(ni, le); 329 330 err = ni_insert_nonresident(ni, attr_s->type, attr_name(attr_s), 331 attr_s->name_len, run, 0, alen, 332 attr_s->flags, &attr, NULL); 333 if (err) 334 goto out3; 335 |
336 ntfs_free(attr_s); | 336 kfree(attr_s); |
337 attr->nres.data_size = cpu_to_le64(rsize); 338 attr->nres.valid_size = attr->nres.data_size; 339 340 *ins_attr = attr; 341 342 if (is_data) 343 ni->ni_flags &= ~NI_FLAG_RESIDENT; 344 --- 6 unchanged lines hidden (view full) --- 351 memcpy(attr, attr_s, asize); 352 rec->used = cpu_to_le32(used + asize); 353 mi->dirty = true; 354out2: 355 /* undo: do not trim new allocated clusters */ 356 run_deallocate(sbi, run, false); 357 run_close(run); 358out1: | 337 attr->nres.data_size = cpu_to_le64(rsize); 338 attr->nres.valid_size = attr->nres.data_size; 339 340 *ins_attr = attr; 341 342 if (is_data) 343 ni->ni_flags &= ~NI_FLAG_RESIDENT; 344 --- 6 unchanged lines hidden (view full) --- 351 memcpy(attr, attr_s, asize); 352 rec->used = cpu_to_le32(used + asize); 353 mi->dirty = true; 354out2: 355 /* undo: do not trim new allocated clusters */ 356 run_deallocate(sbi, run, false); 357 run_close(run); 358out1: |
359 ntfs_free(attr_s); | 359 kfree(attr_s); |
360 /*reinsert le*/ 361out: 362 return err; 363} 364 365/* 366 * attr_set_size_res 367 * --- 1729 unchanged lines hidden --- | 360 /*reinsert le*/ 361out: 362 return err; 363} 364 365/* 366 * attr_set_size_res 367 * --- 1729 unchanged lines hidden --- |