Lines Matching full:ni

41 static bool ntfs_is_valid_reparse_buffer(struct ntfs_inode *ni,  in ntfs_is_valid_reparse_buffer()  argument
46 if (!ni || !reparse_attr) in ntfs_is_valid_reparse_buffer()
79 static bool valid_reparse_data(struct ntfs_inode *ni, in valid_reparse_data() argument
86 if (ntfs_is_valid_reparse_buffer(ni, reparse_attr, size) == false) in valid_reparse_data()
99 if (data_len || !(ni->flags & FILE_ATTRIBUTE_RECALL_ON_OPEN)) in valid_reparse_data()
134 unsigned int ntfs_make_symlink(struct ntfs_inode *ni) in ntfs_make_symlink() argument
142 reparse_attr = ntfs_attr_readall(ni, AT_REPARSE_POINT, NULL, 0, in ntfs_make_symlink()
145 valid_reparse_data(ni, reparse_attr, attr_size)) { in ntfs_make_symlink()
153 ni->target = kvzalloc(lth + 1, GFP_NOFS); in ntfs_make_symlink()
154 if (ni->target) { in ntfs_make_symlink()
155 memcpy(ni->target, wsl_link_data->link, lth); in ntfs_make_symlink()
156 ni->target[lth] = 0; in ntfs_make_symlink()
165 ni->flags &= ~FILE_ATTR_REPARSE_POINT; in ntfs_make_symlink()
217 static int set_reparse_index(struct ntfs_inode *ni, struct ntfs_index_context *xr, in set_reparse_index() argument
224 file_id_cpu = MK_MREF(ni->mft_no, ni->seq_no); in set_reparse_index()
253 struct ntfs_inode *ni = NTFS_I(rp); in remove_reparse_index() local
254 int err = 0, ret = ni->data_size; in remove_reparse_index()
256 if (ni->data_size == 0) in remove_reparse_index()
264 file_id_cpu = MK_MREF(ni->mft_no, ni->seq_no); in remove_reparse_index()
330 static int update_reparse_data(struct ntfs_inode *ni, struct ntfs_index_context *xr, in update_reparse_data() argument
340 rp_inode = ntfs_attr_iget(VFS_I(ni), AT_REPARSE_POINT, AT_UNNAMED, 0); in update_reparse_data()
355 ntfs_error(ni->vol->sb, "Failed to update reparse data\n"); in update_reparse_data()
360 if (set_reparse_index(ni, xr, ((const struct reparse_point *)value)->reparse_tag) && in update_reparse_data()
368 ntfs_error(ni->vol->sb, in update_reparse_data()
372 mark_mft_record_dirty(ni); in update_reparse_data()
382 int ntfs_delete_reparse_index(struct ntfs_inode *ni) in ntfs_delete_reparse_index() argument
390 if (!(ni->flags & FILE_ATTR_REPARSE_POINT)) in ntfs_delete_reparse_index()
393 vi = ntfs_attr_iget(VFS_I(ni), AT_REPARSE_POINT, AT_UNNAMED, 0); in ntfs_delete_reparse_index()
401 xr = open_reparse_index(ni->vol); in ntfs_delete_reparse_index()
418 ni->flags &= ~FILE_ATTR_REPARSE_POINT; in ntfs_delete_reparse_index()
419 NInoSetFileNameDirty(ni); in ntfs_delete_reparse_index()
420 mark_mft_record_dirty(ni); in ntfs_delete_reparse_index()
430 static int ntfs_set_ntfs_reparse_data(struct ntfs_inode *ni, char *value, size_t size) in ntfs_set_ntfs_reparse_data() argument
436 if (!ni) in ntfs_set_ntfs_reparse_data()
444 if (valid_reparse_data(ni, (const struct reparse_point *)value, size) == false) in ntfs_set_ntfs_reparse_data()
447 xr = open_reparse_index(ni->vol); in ntfs_set_ntfs_reparse_data()
452 if (!ntfs_attr_exist(ni, AT_REPARSE_POINT, AT_UNNAMED, 0)) { in ntfs_set_ntfs_reparse_data()
460 if (ni->vol->major_ver < 3) { in ntfs_set_ntfs_reparse_data()
466 err = ntfs_attr_add(ni, AT_REPARSE_POINT, AT_UNNAMED, 0, (u8 *)&rp, sizeof(rp)); in ntfs_set_ntfs_reparse_data()
471 ni->flags |= FILE_ATTR_REPARSE_POINT; in ntfs_set_ntfs_reparse_data()
472 NInoSetFileNameDirty(ni); in ntfs_set_ntfs_reparse_data()
473 mark_mft_record_dirty(ni); in ntfs_set_ntfs_reparse_data()
478 err = update_reparse_data(ni, xr, value, size); in ntfs_set_ntfs_reparse_data()
480 ni->flags &= ~FILE_ATTR_REPARSE_POINT; in ntfs_set_ntfs_reparse_data()
481 NInoSetFileNameDirty(ni); in ntfs_set_ntfs_reparse_data()
482 mark_mft_record_dirty(ni); in ntfs_set_ntfs_reparse_data()
498 int ntfs_reparse_set_wsl_symlink(struct ntfs_inode *ni, in ntfs_reparse_set_wsl_symlink() argument
508 len = ntfs_ucstonls(ni->vol, target, target_len, &utarget, 0); in ntfs_reparse_set_wsl_symlink()
525 err = ntfs_set_ntfs_reparse_data(ni, in ntfs_reparse_set_wsl_symlink()
529 ni->target = utarget; in ntfs_reparse_set_wsl_symlink()
540 int ntfs_reparse_set_wsl_not_symlink(struct ntfs_inode *ni, mode_t mode) in ntfs_reparse_set_wsl_not_symlink() argument
568 err = ntfs_set_ntfs_reparse_data(ni, (char *)reparse, in ntfs_reparse_set_wsl_not_symlink()