Lines Matching refs:ni

132 #define ntfs_real_allowed_access(scx, ni, type) ntfs_allowed_access(scx, ni, type)
135 #define ntfs_allowed_access(scx, ni, type) \
137 ? 1 : ntfs_allowed_access(scx, ni, type))
140 #define set_archive(ni) (ni)->flags |= FILE_ATTR_ARCHIVE
149 #define CALL_REPARSE_PLUGIN(ni, op_name, ...) \
151 ops = select_reparse_plugin(ctx, ni, &reparse), \
154 ops->op_name(ni, reparse, __VA_ARGS__) \
262 static void ntfs_fuse_update_times(ntfs_inode *ni, ntfs_time_update_flags mask)
267 (sle64_to_cpu(ni->last_access_time)
268 >= sle64_to_cpu(ni->last_data_change_time)) &&
269 (sle64_to_cpu(ni->last_access_time)
270 >= sle64_to_cpu(ni->last_mft_change_time)))
272 ntfs_inode_update_times(ni, mask);
331 ntfs_inode *ni, mode_t accesstype)
375 if (ni)
376 ni2 = ni;
385 if (!ni)
588 ntfs_inode *ni;
598 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
599 if (!ni) {
605 crtime->tv_sec = sle64_to_cpu(ni->creation_time);
607 if (ntfs_inode_close(ni))
617 ntfs_inode *ni;
622 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
623 if (!ni)
627 ni->creation_time = cpu_to_sle64(tv->tv_sec);
628 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
631 if (ntfs_inode_close(ni))
638 ntfs_inode *ni;
643 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
644 if (!ni)
652 if (ntfs_inode_close(ni))
659 ntfs_inode *ni;
664 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
665 if (!ni)
669 ni->last_mft_change_time = cpu_to_sle64(tv->tv_sec);
670 ntfs_fuse_update_times(ni, 0);
673 if (ntfs_inode_close(ni))
711 static int junction_getattr(ntfs_inode *ni,
719 target = ntfs_make_symlink(ni, ctx->abs_mnt_point);
730 stbuf->st_blocks = (ni->allocated_size + 511) >> 9;
740 static int wsl_getattr(ntfs_inode *ni, const REPARSE_POINT *reparse,
746 res = ntfs_reparse_check_wsl(ni, reparse);
757 res = ntfs_ea_check_wsldev(ni, &rdev);
762 res = ntfs_ea_check_wsldev(ni, &rdev);
809 ntfs_inode *ni;
821 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
822 if (!ni) {
833 (!strcmp(org_path,"/") ? ni : (ntfs_inode*)NULL),
834 ni, S_IEXEC)) {
839 stbuf->st_nlink = le16_to_cpu(ni->mrec->link_count);
841 && !(ni->flags & FILE_ATTR_REPARSE_POINT))
842 stbuf->st_nlink = ntfs_dir_link_cnt(ni);
844 if (((ni->mrec->flags & MFT_RECORD_IS_DIRECTORY)
845 || (ni->flags & FILE_ATTR_REPARSE_POINT))
847 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
852 res = CALL_REPARSE_PLUGIN(ni, getattr, stbuf);
859 (ni->allocated_size + 511) >> 9;
869 target = ntfs_make_symlink(ni, ctx->abs_mnt_point);
880 stbuf->st_blocks = (ni->allocated_size + 511) >> 9;
881 stbuf->st_nlink = le16_to_cpu(ni->mrec->link_count);
893 if (!test_nino_flag(ni, KnownSize)) {
894 na = ntfs_attr_open(ni, AT_INDEX_ALLOCATION, NTFS_INDEX_I30, 4);
896 ni->data_size = na->data_size;
897 ni->allocated_size = na->allocated_size;
898 set_nino_flag(ni, KnownSize);
902 stbuf->st_size = ni->data_size;
903 stbuf->st_blocks = ni->allocated_size >> 9;
910 stbuf->st_size = ni->data_size;
918 && (ni->flags & FILE_ATTR_ENCRYPTED)
919 && ni->data_size)
920 stbuf->st_size = ((ni->data_size + 511) & ~511) + 2;
926 stbuf->st_blocks = (ni->allocated_size + 511) >> 9;
927 if (ni->flags & FILE_ATTR_SYSTEM || stream_name_len) {
928 na = ntfs_attr_open(ni, AT_DATA, stream_name,
942 if (!(ni->flags & FILE_ATTR_HIDDEN) &&
1035 if (ntfs_get_owner_mode(&security,ni,stbuf) < 0)
1044 stbuf->st_ino = ni->mft_no;
1046 stbuf->st_atimespec = ntfs2timespec(ni->last_access_time);
1047 stbuf->st_ctimespec = ntfs2timespec(ni->last_mft_change_time);
1048 stbuf->st_mtimespec = ntfs2timespec(ni->last_data_change_time);
1050 stbuf->st_atim = ntfs2timespec(ni->last_access_time);
1051 stbuf->st_ctim = ntfs2timespec(ni->last_mft_change_time);
1052 stbuf->st_mtim = ntfs2timespec(ni->last_data_change_time);
1057 ts = ntfs2timespec(ni->last_access_time);
1060 ts = ntfs2timespec(ni->last_mft_change_time);
1063 ts = ntfs2timespec(ni->last_data_change_time);
1072 ts = ntfs2timespec(ni->last_access_time);
1074 ts = ntfs2timespec(ni->last_mft_change_time);
1076 ts = ntfs2timespec(ni->last_data_change_time);
1081 if (ntfs_inode_close(ni))
1096 static int junction_readlink(ntfs_inode *ni,
1106 *pbuf = ntfs_make_symlink(ni, ctx->abs_mnt_point);
1137 ntfs_inode *ni = NULL;
1153 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
1154 if (!ni) {
1161 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1167 res = CALL_REPARSE_PLUGIN(ni, readlink, &gotlink);
1181 target = ntfs_make_symlink(ni, ctx->abs_mnt_point);
1189 reparse = ntfs_get_reparse_point(ni);
1205 if (!(ni->flags & FILE_ATTR_SYSTEM)) {
1209 na = ntfs_attr_open(ni, AT_DATA, AT_UNNAMED, 0);
1250 if (ntfs_inode_close(ni))
1285 ntfs_inode *ni;
1311 ni = ntfs_inode_open(ctx->vol, mref);
1312 if (ni && (ni->flags & FILE_ATTR_REPARSE_POINT)) {
1317 res = CALL_REPARSE_PLUGIN(ni, getattr, &st);
1323 if (ni)
1324 ntfs_inode_close(ni);
1378 ntfs_inode *ni;
1385 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
1386 if (ni) {
1401 path, ni, ni, accesstype | S_IEXEC)
1403 (ntfs_inode*)NULL, ni, S_IEXEC)
1405 ni,accesstype))
1408 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1414 res = CALL_REPARSE_PLUGIN(ni, opendir, fi);
1419 if (ntfs_inode_close(ni))
1433 ntfs_inode *ni;
1439 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
1440 if (!ni)
1443 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1448 err = CALL_REPARSE_PLUGIN(ni, readdir, &pos, &fill_ctx,
1454 if (ntfs_readdir(ni, &pos, &fill_ctx,
1458 ntfs_fuse_update_times(ni, NTFS_UPDATE_ATIME);
1459 if (ntfs_inode_close(ni))
1471 ntfs_inode *ni;
1485 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
1486 if (ni) {
1487 if (!(ni->flags & FILE_ATTR_REPARSE_POINT)) {
1488 na = ntfs_attr_open(ni, AT_DATA, stream_name, stream_name_len);
1508 path,(ntfs_inode*)NULL,ni,S_IEXEC)
1510 ni,accesstype))
1514 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1520 res = CALL_REPARSE_PLUGIN(ni, open, fi);
1535 && (ni->flags & FILE_ATTR_ENCRYPTED))
1542 if (ni->mft_no < FILE_first_user)
1547 if (ntfs_inode_close(ni))
1560 ntfs_inode *ni = NULL;
1574 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
1575 if (!ni) {
1579 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1588 res = CALL_REPARSE_PLUGIN(ni, read, buf, size, offset, fi);
1597 na = ntfs_attr_open(ni, AT_DATA, stream_name, stream_name_len);
1636 ntfs_fuse_update_times(ni, NTFS_UPDATE_ATIME);
1640 if (ntfs_inode_close(ni))
1651 ntfs_inode *ni = NULL;
1662 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
1663 if (!ni) {
1667 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1676 res = CALL_REPARSE_PLUGIN(ni, write, buf, size, offset, fi);
1685 na = ntfs_attr_open(ni, AT_DATA, stream_name, stream_name_len);
1707 - sle64_to_cpu(ni->last_data_change_time)) > ctx->dmtime))
1708 ntfs_fuse_update_times(ni, NTFS_UPDATE_MCTIME);
1713 set_archive(ni);
1714 if (ntfs_inode_close(ni))
1726 ntfs_inode *ni = NULL;
1748 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
1749 if (!ni) {
1753 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1762 res = CALL_REPARSE_PLUGIN(ni, release, fi);
1772 na = ntfs_attr_open(ni, AT_DATA, stream_name, stream_name_len);
1788 ntfs_inode_update_times(ni,NTFS_UPDATE_MCTIME);
1792 if (ntfs_inode_close(ni))
1812 ntfs_inode *ni = NULL;
1826 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
1827 if (!ni)
1830 if (ni->mft_no < FILE_first_user) {
1835 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1844 res = CALL_REPARSE_PLUGIN(ni, truncate, size);
1846 set_archive(ni);
1854 na = ntfs_attr_open(ni, AT_DATA, stream_name, stream_name_len);
1864 (ntfs_inode*)NULL, ni, S_IEXEC)
1866 && !ntfs_allowed_access(&security, ni, S_IWRITE)))) {
1885 set_archive(ni);
1890 ntfs_fuse_update_times(ni, NTFS_UPDATE_MCTIME);
1895 if (ntfs_inode_close(ni))
1922 ntfs_inode *ni;
1944 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
1945 if (!ni)
1948 if (ntfs_set_mode(&security,ni,mode))
1951 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
1952 NInoSetDirty(ni);
1953 if (ntfs_inode_close(ni))
1966 ntfs_inode *ni;
1992 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
1993 if (!ni)
1997 ni,uid,gid))
2000 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
2001 if (ntfs_inode_close(ni))
2019 ntfs_inode *ni;
2035 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
2036 if (!ni) {
2045 ni, mode))
2048 if (ntfs_inode_close(ni))
2064 ntfs_inode *dir_ni = NULL, *ni;
2157 ni = (*ops->create)(dir_ni, reparse,
2160 ni = (ntfs_inode*)NULL;
2171 ni = ntfs_create_device(dir_ni, securid,
2181 ni = ntfs_create_symlink(dir_ni,
2186 ni = ntfs_create(dir_ni, securid,
2191 if (ni) {
2199 && ntfs_set_inherited_posix(&security, ni,
2205 && ntfs_set_owner_mode(&security, ni,
2211 set_archive(ni);
2213 if (fi && (ni->flags & FILE_ATTR_COMPRESSED)) {
2220 && (ni->flags & FILE_ATTR_ENCRYPTED))
2226 NInoSetDirty(ni);
2228 * closing ni requires access to dir_ni to
2231 if (ntfs_inode_close_in_dir(ni, dir_ni))
2256 ntfs_inode *ni;
2259 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
2260 if (!ni) {
2278 if (ntfs_attr_add(ni, AT_DATA, stream_name, stream_name_len, NULL, 0))
2281 set_archive(ni);
2287 if (ni->flags & FILE_ATTR_COMPRESSED)
2292 && (ni->flags & FILE_ATTR_ENCRYPTED))
2299 if (ntfs_inode_close(ni))
2360 ntfs_inode *dir_ni = NULL, *ni;
2376 ni = ntfs_pathname_to_inode(ctx->vol, NULL, old_path);
2377 if (!ni) {
2406 (ntfs_inode*)NULL,ni,S_IWRITE + S_IEXEC))
2418 ni, uname, uname_len);
2426 if (ntfs_link(ni, dir_ni, uname, uname_len)) {
2431 set_archive(ni);
2432 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
2437 * Must close dir_ni first otherwise ntfs_inode_sync_file_name(ni)
2438 * may fail because ni may not be in parent's index on the disk yet.
2442 if (ntfs_inode_close(ni))
2453 ntfs_inode *dir_ni = NULL, *ni;
2464 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
2465 if (!ni) {
2470 if (ni->mft_no < FILE_first_user) {
2498 || ntfs_allowed_dir_access(&security, org_path, dir_ni, ni,
2507 org_path, ni, uname, uname_len);
2512 if (ntfs_delete(ctx->vol, org_path, ni, dir_ni,
2515 /* ntfs_delete() always closes ni and dir_ni */
2516 ni = dir_ni = NULL;
2524 if (ntfs_inode_close(ni))
2534 ntfs_inode *ni;
2537 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
2538 if (!ni)
2541 if (ntfs_attr_remove(ni, AT_DATA, stream_name, stream_name_len))
2544 if (ntfs_inode_close(ni))
2685 ntfs_inode *ni;
2698 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
2699 if (ni) {
2700 ret = ntfs_check_empty_dir(ni);
2703 ntfs_inode_close(ni);
2707 inum = ni->mft_no;
2708 if (ntfs_inode_close(ni)) {
2724 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
2725 if (ni) {
2726 same = ni->mft_no == inum;
2727 if (ntfs_inode_close(ni))
2772 ntfs_inode *ni;
2788 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
2789 if (!ni)
2795 if (ntfs_allowed_as_owner(&security, ni)
2798 && ntfs_allowed_access(&security, ni, S_IWRITE))) {
2806 ni->last_access_time
2812 ni->last_data_change_time
2814 ntfs_inode_update_times(ni, mask);
2820 if (ntfs_inode_close(ni))
2829 ntfs_inode *ni;
2849 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
2850 if (!ni)
2854 ownerok = ntfs_allowed_as_owner(&security, ni);
2864 && ntfs_allowed_access(&security, ni, S_IWRITE);
2873 ni->last_access_time = timespec2ntfs(actime);
2874 ni->last_data_change_time = timespec2ntfs(modtime);
2875 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
2880 && ntfs_allowed_access(&security, ni, S_IWRITE);
2884 ntfs_inode_update_times(ni, NTFS_UPDATE_AMCTIME);
2892 ni->last_access_time = timespec2ntfs(actime);
2893 ni->last_data_change_time = timespec2ntfs(modtime);
2894 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
2896 ntfs_inode_update_times(ni, NTFS_UPDATE_AMCTIME);
2899 if (ntfs_inode_close(ni))
2925 ntfs_inode *ni;
2931 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
2932 if (!ni)
2941 ret = ntfs_ioctl(ni, (unsigned int)cmd, arg, flags, data);
2943 if (ntfs_inode_close (ni))
2951 ntfs_inode *ni;
2963 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
2964 if (!ni)
2967 na = ntfs_attr_open(ni, AT_DATA, AT_UNNAMED, 0);
2990 if (ntfs_inode_close(ni))
3021 ntfs_inode *ni;
3025 ni = (ntfs_inode*)NULL;
3063 ni = ntfs_pathname_to_inode(ctx->vol,
3068 return (ni);
3151 ntfs_inode *ni;
3164 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
3165 if (!ni)
3168 if (!user_xattrs_allowed(ctx, ni))
3172 if (!ntfs_allowed_access(&security,ni,S_IREAD)) {
3177 actx = ntfs_attr_get_search_ctx(ni, NULL);
3185 ret = ntfs_fuse_listxattr_common(ni, actx, list, size,
3195 if (ntfs_inode_close(ni))
3204 ntfs_inode *ni;
3221 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
3222 if (!ni)
3225 if (!ntfs_allowed_access(&security,ni,S_IREAD)) {
3230 actx = ntfs_attr_get_search_ctx(ni, NULL);
3274 if (ntfs_inode_close(ni))
3291 ntfs_inode *ni;
3318 ni = ntfs_check_access_xattr(&security, path, attr, FALSE);
3319 if (ni) {
3320 if (ntfs_allowed_access(&security,ni,S_IREAD)) {
3326 attr, ni, dir_ni, value, size);
3332 if (ntfs_inode_close(ni))
3345 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
3346 if (ni) {
3354 attr, ni, dir_ni, value, size);
3357 if (ntfs_inode_close(ni))
3384 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
3385 if (!ni)
3388 if (!user_xattrs_allowed(ctx, ni)) {
3394 if (!ntfs_allowed_access(&security, ni, S_IREAD)) {
3404 na = ntfs_attr_open(ni, AT_DATA, lename, lename_len);
3429 if (ntfs_inode_close(ni))
3449 ntfs_inode *ni;
3479 ni = ntfs_check_access_xattr(&security,path,attr,TRUE);
3480 if (ni) {
3481 if (ntfs_allowed_as_owner(&security,ni)) {
3487 attr, ni, dir_ni, value, size, flags);
3495 ntfs_fuse_update_times(ni,
3497 if (ntfs_inode_close(ni))
3513 ni = ntfs_check_access_xattr(&security,path,attr,TRUE);
3515 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
3516 if (ni) {
3522 || ntfs_allowed_as_owner(&security,ni)) {
3528 attr, ni, dir_ni, value,
3537 ntfs_fuse_update_times(ni,
3539 if (ntfs_inode_close(ni))
3567 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
3568 if (!ni)
3580 if (!ntfs_allowed_as_owner(&security,ni)) {
3587 if (!user_xattrs_allowed(ctx, ni)) {
3591 if (!ntfs_allowed_access(&security,ni,S_IWRITE)) {
3600 && !user_xattrs_allowed(ctx, ni)) {
3612 na = ntfs_attr_open(ni, AT_DATA, lename, lename_len);
3622 if (ntfs_attr_add(ni, AT_DATA, lename, lename_len, NULL, 0)) {
3626 if (!(ni->flags & FILE_ATTR_ARCHIVE)) {
3627 set_archive(ni);
3628 NInoFileNameSetDirty(ni);
3630 na = ntfs_attr_open(ni, AT_DATA, lename, lename_len);
3661 && (ni->flags & FILE_ATTR_ENCRYPTED)) {
3667 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
3668 if (!(ni->flags & FILE_ATTR_ARCHIVE)) {
3669 set_archive(ni);
3670 NInoFileNameSetDirty(ni);
3677 if (ntfs_inode_close(ni))
3684 ntfs_inode *ni;
3717 ni = ntfs_check_access_xattr(&security,path,attr,TRUE);
3718 if (ni) {
3719 if (ntfs_allowed_as_owner(&security,ni)) {
3725 attr, ni, dir_ni);
3733 ntfs_fuse_update_times(ni,
3735 if (ntfs_inode_close(ni))
3748 ni = ntfs_check_access_xattr(&security,
3752 ni = (ntfs_inode*)NULL;
3755 ni = ntfs_pathname_to_inode(ctx->vol,
3758 if (ni) {
3764 || ntfs_allowed_as_owner(&security,ni)) {
3770 attr, ni, dir_ni);
3778 ntfs_fuse_update_times(ni,
3780 if (ntfs_inode_close(ni))
3809 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
3810 if (!ni)
3822 if (!ntfs_allowed_as_owner(&security,ni)) {
3829 if (!user_xattrs_allowed(ctx, ni)) {
3833 if (!ntfs_allowed_access(&security,ni,S_IWRITE)) {
3842 && !user_xattrs_allowed(ctx, ni)) {
3852 if (ntfs_attr_remove(ni, AT_DATA, lename, lename_len)) {
3858 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
3859 if (!(ni->flags & FILE_ATTR_ARCHIVE)) {
3860 set_archive(ni);
3861 NInoFileNameSetDirty(ni);
3866 if (ntfs_inode_close(ni))