Lines Matching refs:ni

161 #define ntfs_real_allowed_access(scx, ni, type) ntfs_allowed_access(scx, ni, type)
164 #define ntfs_allowed_access(scx, ni, type) \
166 ? 1 : ntfs_allowed_access(scx, ni, type))
169 #define set_archive(ni) (ni)->flags |= FILE_ATTR_ARCHIVE
179 #define CALL_REPARSE_PLUGIN(ni, op_name, ...) \
181 ops = select_reparse_plugin(ctx, ni, &reparse), \
184 ops->op_name(ni, reparse, __VA_ARGS__) \
313 static void ntfs_fuse_update_times(ntfs_inode *ni, ntfs_time_update_flags mask)
318 (sle64_to_cpu(ni->last_access_time)
319 >= sle64_to_cpu(ni->last_data_change_time)) &&
320 (sle64_to_cpu(ni->last_access_time)
321 >= sle64_to_cpu(ni->last_mft_change_time)))
323 ntfs_inode_update_times(ni, mask);
414 ntfs_inode *ni, mode_t accesstype)
427 if (ni)
428 ni2 = ni;
435 if (!ni)
529 ntfs_inode *ni;
539 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
540 if (!ni) {
546 crtime->tv_sec = ni->creation_time;
548 if (ntfs_inode_close(ni))
558 ntfs_inode *ni;
563 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
564 if (!ni)
568 ni->creation_time = tv->tv_sec;
569 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
572 if (ntfs_inode_close(ni))
579 ntfs_inode *ni;
584 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
585 if (!ni)
593 if (ntfs_inode_close(ni))
600 ntfs_inode *ni;
605 ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
606 if (!ni)
610 ni->last_mft_change_time = tv->tv_sec;
611 ntfs_fuse_update_times(ni, 0);
614 if (ntfs_inode_close(ni))
652 static int junction_getstat(ntfs_inode *ni,
660 target = ntfs_make_symlink(ni, ctx->abs_mnt_point);
671 stbuf->st_blocks = (ni->allocated_size + 511) >> 9;
681 static int wsl_getstat(ntfs_inode *ni, const REPARSE_POINT *reparse,
687 res = ntfs_reparse_check_wsl(ni, reparse);
698 res = ntfs_ea_check_wsldev(ni, &rdev);
703 res = ntfs_ea_check_wsldev(ni, &rdev);
748 ntfs_inode *ni, struct stat *stbuf)
756 stbuf->st_nlink = le16_to_cpu(ni->mrec->link_count);
758 && !(ni->flags & FILE_ATTR_REPARSE_POINT))
759 stbuf->st_nlink = ntfs_dir_link_cnt(ni);
760 if ((ni->mrec->flags & MFT_RECORD_IS_DIRECTORY)
761 || (ni->flags & FILE_ATTR_REPARSE_POINT)) {
762 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
767 res = CALL_REPARSE_PLUGIN(ni, getattr, stbuf);
773 (ni->allocated_size + 511) >> 9;
782 target = ntfs_make_symlink(ni, ctx->abs_mnt_point);
794 (ni->allocated_size + 511) >> 9;
796 le16_to_cpu(ni->mrec->link_count);
808 if (!test_nino_flag(ni, KnownSize)) {
809 na = ntfs_attr_open(ni, AT_INDEX_ALLOCATION,
812 ni->data_size = na->data_size;
813 ni->allocated_size = na->allocated_size;
814 set_nino_flag(ni, KnownSize);
818 stbuf->st_size = ni->data_size;
819 stbuf->st_blocks = ni->allocated_size >> 9;
826 stbuf->st_size = ni->data_size;
834 && (ni->flags & FILE_ATTR_ENCRYPTED)
835 && ni->data_size)
836 stbuf->st_size = ((ni->data_size + 511) & ~511) + 2;
842 stbuf->st_blocks = (ni->allocated_size + 511) >> 9;
843 if (ni->flags & FILE_ATTR_SYSTEM) {
844 na = ntfs_attr_open(ni, AT_DATA, AT_UNNAMED, 0);
846 stbuf->st_ino = ni->mft_no;
850 if (!(ni->flags & FILE_ATTR_HIDDEN)) {
933 if (ntfs_get_owner_mode(scx,ni,stbuf) < 0)
942 stbuf->st_ino = ni->mft_no;
944 stbuf->st_atimespec = ntfs2timespec(ni->last_access_time);
945 stbuf->st_ctimespec = ntfs2timespec(ni->last_mft_change_time);
946 stbuf->st_mtimespec = ntfs2timespec(ni->last_data_change_time);
948 stbuf->st_atim = ntfs2timespec(ni->last_access_time);
949 stbuf->st_ctim = ntfs2timespec(ni->last_mft_change_time);
950 stbuf->st_mtim = ntfs2timespec(ni->last_data_change_time);
955 ts = ntfs2timespec(ni->last_access_time);
958 ts = ntfs2timespec(ni->last_mft_change_time);
961 ts = ntfs2timespec(ni->last_data_change_time);
970 ts = ntfs2timespec(ni->last_access_time);
972 ts = ntfs2timespec(ni->last_mft_change_time);
974 ts = ntfs2timespec(ni->last_data_change_time);
986 ntfs_inode *ni;
990 ni = ntfs_inode_open(ctx->vol, INODE(ino));
991 if (!ni)
995 res = ntfs_fuse_getstat(&security, ni, &stbuf);
996 if (ntfs_inode_close(ni))
1008 ntfs_inode *ni;
1012 ni = ntfs_inode_open(ctx->vol, pentry->ino);
1013 if (ni) {
1014 if (!ntfs_fuse_getstat(scx, ni, &pentry->attr)) {
1020 if (ntfs_inode_close(ni))
1081 static int junction_readlink(ntfs_inode *ni,
1090 *pbuf = ntfs_make_symlink(ni, ctx->abs_mnt_point);
1119 ntfs_inode *ni = NULL;
1126 ni = ntfs_inode_open(ctx->vol, INODE(ino));
1127 if (!ni) {
1134 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1141 res = CALL_REPARSE_PLUGIN(ni, readlink, &buf);
1148 buf = ntfs_make_symlink(ni, ctx->abs_mnt_point);
1153 reparse = ntfs_get_reparse_point(ni);
1174 if (!(ni->flags & FILE_ATTR_SYSTEM)) {
1178 na = ntfs_attr_open(ni, AT_DATA, AT_UNNAMED, 0);
1219 if (ntfs_inode_close(ni))
1253 ntfs_inode *ni;
1279 ni = ntfs_inode_open(ctx->vol, mref);
1280 if (ni && (ni->flags & FILE_ATTR_REPARSE_POINT)) {
1285 res = CALL_REPARSE_PLUGIN(ni, getattr, &st);
1291 if (ni)
1292 ntfs_inode_close(ni);
1380 ntfs_inode *ni;
1385 ni = ntfs_inode_open(ctx->vol, INODE(ino));
1386 if (ni) {
1395 if (!ntfs_allowed_access(&security,ni,accesstype))
1398 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1404 res = CALL_REPARSE_PLUGIN(ni, opendir, fi);
1409 if (ntfs_inode_close(ni))
1443 ntfs_inode *ni;
1464 ni = ntfs_inode_open(ctx->vol, INODE(ino));
1465 if (ni) {
1466 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1469 res = CALL_REPARSE_PLUGIN(ni, release,
1472 if (ntfs_inode_close(ni) && !res)
1494 ntfs_inode *ni;
1523 ni = ntfs_inode_open(ctx->vol,INODE(ino));
1524 if (!ni)
1527 if (ni->flags
1535 err = CALL_REPARSE_PLUGIN(ni,
1543 if (ntfs_readdir(ni, &pos, fill,
1549 ntfs_fuse_update_times(ni,
1551 if (ntfs_inode_close(ni))
1604 ntfs_inode *ni;
1614 ni = ntfs_inode_open(ctx->vol, INODE(ino));
1615 if (ni) {
1616 if (!(ni->flags & FILE_ATTR_REPARSE_POINT)) {
1617 na = ntfs_attr_open(ni, AT_DATA, AT_UNNAMED, 0);
1634 ni,accesstype))
1638 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1644 res = CALL_REPARSE_PLUGIN(ni, open, fi);
1662 && (ni->flags & FILE_ATTR_ENCRYPTED))
1674 if (ntfs_inode_close(ni))
1705 ntfs_inode *ni = NULL;
1722 ni = ntfs_inode_open(ctx->vol, INODE(ino));
1723 if (!ni) {
1727 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1734 res = CALL_REPARSE_PLUGIN(ni, read, buf, size, offset, &of->fi);
1743 na = ntfs_attr_open(ni, AT_DATA, AT_UNNAMED, 0);
1767 "offset %lld: %lld <> %lld", (long long)ni->mft_no,
1782 ntfs_fuse_update_times(ni, NTFS_UPDATE_ATIME);
1786 if (ntfs_inode_close(ni))
1799 ntfs_inode *ni = NULL;
1803 ni = ntfs_inode_open(ctx->vol, INODE(ino));
1804 if (!ni) {
1808 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
1815 res = CALL_REPARSE_PLUGIN(ni, write, buf, size, offset,
1825 na = ntfs_attr_open(ni, AT_DATA, AT_UNNAMED, 0);
1847 - sle64_to_cpu(ni->last_data_change_time)) > ctx->dmtime))
1848 ntfs_fuse_update_times(ni, NTFS_UPDATE_MCTIME);
1853 set_archive(ni);
1854 if (ntfs_inode_close(ni))
1866 ntfs_inode *ni;
1873 ni = ntfs_inode_open(ctx->vol, INODE(ino));
1874 if (!ni)
1879 if (ntfs_set_mode(scx, ni, mode))
1882 ntfs_fuse_update_times(ni,
1889 res = ntfs_fuse_getstat(scx, ni, stbuf);
1891 NInoSetDirty(ni);
1893 res = ntfs_fuse_getstat(scx, ni, stbuf);
1894 if (ntfs_inode_close(ni))
1904 ntfs_inode *ni;
1914 ni = ntfs_inode_open(ctx->vol, INODE(ino));
1915 if (!ni)
1922 if (ntfs_set_owner(scx, ni, uid, gid))
1925 ntfs_fuse_update_times(ni,
1932 res = ntfs_fuse_getstat(scx, ni, stbuf);
1935 res = ntfs_fuse_getstat(scx, ni, stbuf);
1936 if (ntfs_inode_close(ni))
1946 ntfs_inode *ni;
1956 ni = ntfs_inode_open(ctx->vol, INODE(ino));
1957 if (!ni)
1962 if (ntfs_set_ownmod(scx, ni, uid, gid, mode))
1965 ntfs_fuse_update_times(ni,
1972 res = ntfs_fuse_getstat(scx, ni, stbuf);
1975 res = ntfs_fuse_getstat(scx, ni, stbuf);
1976 if (ntfs_inode_close(ni))
1991 ntfs_inode *ni = NULL;
1996 ni = ntfs_inode_open(ctx->vol, INODE(ino));
1997 if (!ni)
2005 if (!(ni->flags & FILE_ATTR_REPARSE_POINT)) {
2006 na = ntfs_attr_open(ni, AT_DATA, AT_UNNAMED, 0);
2017 && !ntfs_allowed_access(scx, ni, S_IWRITE)) {
2022 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
2027 res = CALL_REPARSE_PLUGIN(ni, truncate, size);
2029 set_archive(ni);
2051 set_archive(ni);
2056 ntfs_fuse_update_times(ni, NTFS_UPDATE_MCTIME);
2057 res = ntfs_fuse_getstat(scx, ni, stbuf);
2062 if (ntfs_inode_close(ni))
2072 ntfs_inode *ni;
2075 ni = ntfs_inode_open(ctx->vol, INODE(ino));
2076 if (!ni)
2082 if (ntfs_allowed_as_owner(scx, ni)
2085 && ntfs_allowed_access(scx, ni, S_IWRITE))) {
2094 ni->last_access_time
2097 ni->last_access_time
2100 ni->last_access_time.tv_sec
2103 ni->last_access_time.tv_nsec
2113 ni->last_data_change_time
2116 ni->last_data_change_time
2119 ni->last_data_change_time.tv_sec
2122 ni->last_data_change_time.tv_nsec
2127 ntfs_inode_update_times(ni, mask);
2134 res = ntfs_fuse_getstat(scx, ni, stbuf);
2135 if (ntfs_inode_close(ni))
2145 ntfs_inode *ni;
2154 ni = ntfs_inode_open(ctx->vol, INODE(ino));
2155 if (!ni)
2159 ownerok = ntfs_allowed_as_owner(scx, ni);
2169 && ntfs_allowed_access(scx, ni, S_IWRITE);
2179 ni->last_access_time = timespec2ntfs(actime);
2180 ni->last_data_change_time = timespec2ntfs(modtime);
2181 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
2186 && ntfs_allowed_access(scx, ni, S_IWRITE);
2190 ntfs_inode_update_times(ni, NTFS_UPDATE_AMCTIME);
2198 ni->last_access_time = timespec2ntfs(actime);
2199 ni->last_data_change_time = timespec2ntfs(modtime);
2200 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
2202 ntfs_inode_update_times(ni, NTFS_UPDATE_AMCTIME);
2205 res = ntfs_fuse_getstat(scx, ni, stbuf);
2206 if (ntfs_inode_close(ni))
2217 ntfs_inode *ni;
2229 ni = ntfs_inode_open(ctx->vol, INODE(ino));
2230 if (!ni)
2233 res = ntfs_fuse_getstat(&security, ni, &stbuf);
2234 if (ntfs_inode_close(ni))
2304 ntfs_inode *ni;
2314 ni = ntfs_inode_open(ctx->vol, INODE(ino));
2315 if (!ni) {
2324 ni, mode))
2327 if (ntfs_inode_close(ni))
2345 ntfs_inode *dir_ni = NULL, *ni;
2424 ni = (*ops->create)(dir_ni, reparse,
2427 ni = (ntfs_inode*)NULL;
2432 ni = (ntfs_inode*)NULL;
2439 ni = ntfs_create_device(dir_ni, securid,
2450 ni = ntfs_create_symlink(dir_ni,
2456 ni = ntfs_create(dir_ni, securid, uname,
2461 if (ni) {
2469 && ntfs_set_inherited_posix(&security, ni,
2475 && ntfs_set_owner_mode(&security, ni,
2481 set_archive(ni);
2483 if (fi && (ni->flags & FILE_ATTR_COMPRESSED)) {
2490 && (ni->flags & FILE_ATTR_ENCRYPTED))
2495 ntfs_inode_update_mbsname(dir_ni, name, ni->mft_no);
2496 NInoSetDirty(ni);
2497 e->ino = ni->mft_no;
2501 res = ntfs_fuse_getstat(&security, ni, &e->attr);
2503 * closing ni requires access to dir_ni to
2506 if (ntfs_inode_close_in_dir(ni, dir_ni))
2588 ntfs_inode *dir_ni = NULL, *ni;
2593 ni = ntfs_inode_open(ctx->vol, INODE(ino));
2594 if (!ni) {
2600 if (e && (ni->mrec->flags & MFT_RECORD_IS_DIRECTORY)) {
2636 ni, uname, uname_len);
2644 if (ntfs_link(ni, dir_ni, uname, uname_len)) {
2649 ntfs_inode_update_mbsname(dir_ni, newname, ni->mft_no);
2651 e->ino = ni->mft_no;
2655 res = ntfs_fuse_getstat(&security, ni, &e->attr);
2657 set_archive(ni);
2658 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
2663 * Must close dir_ni first otherwise ntfs_inode_sync_file_name(ni)
2664 * may fail because ni may not be in parent's index on the disk yet.
2668 if (ntfs_inode_close(ni))
2692 ntfs_inode *dir_ni = NULL, *ni = NULL;
2736 ni = ntfs_inode_open(ctx->vol, ino);
2737 if (!ni) {
2744 isdir = ni->mrec->flags & MFT_RECORD_IS_DIRECTORY;
2747 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
2757 res = CALL_REPARSE_PLUGIN(ni, getattr, &st);
2778 && !ntfs_allowed_dir_access(&security, dir_ni, ino, ni,
2803 /* ni has to be closed for linking ghost */
2804 if (ni) {
2805 if (ntfs_inode_close(ni)) {
2809 ni = (ntfs_inode*)NULL;
2850 if (!ni) {
2851 ni = ntfs_inode_open(ctx->vol, ino);
2852 if (!ni) {
2863 ni, uname, uname_len);
2868 if (ntfs_delete(ctx->vol, (char*)NULL, ni, dir_ni,
2871 /* ntfs_delete() always closes ni and dir_ni */
2872 ni = dir_ni = NULL;
2874 if (ntfs_inode_close(ni) && !res)
3015 ntfs_inode *ni;
3036 ni = ntfs_inode_open(ctx->vol, INODE(xino));
3037 if (!ni)
3040 ret = ntfs_check_empty_dir(ni);
3043 ntfs_inode_close(ni);
3047 if (ntfs_inode_close(ni)) {
3075 ntfs_inode *ni = NULL;
3089 ni = ntfs_inode_open(ctx->vol, INODE(ino));
3090 if (!ni) {
3094 if (ni->flags & FILE_ATTR_REPARSE_POINT) {
3099 res = CALL_REPARSE_PLUGIN(ni, release, &of->fi);
3109 na = ntfs_attr_open(ni, AT_DATA, AT_UNNAMED, 0);
3125 ntfs_inode_update_times(ni,NTFS_UPDATE_MCTIME);
3129 if (ntfs_inode_close(ni))
3198 ntfs_inode *ni;
3206 ni = ntfs_inode_open(ctx->vol, INODE(ino));
3207 if (!ni) {
3227 ret = ntfs_ioctl(ni, (unsigned int)cmd, arg, flags, buf);
3228 if (ntfs_inode_close (ni))
3244 ntfs_inode *ni;
3256 ni = ntfs_inode_open(ctx->vol, INODE(ino));
3257 if (!ni) {
3262 na = ntfs_attr_open(ni, AT_DATA, AT_UNNAMED, 0);
3285 if (ntfs_inode_close(ni))
3322 ntfs_inode *ni;
3327 ni = (ntfs_inode*)NULL;
3355 ni = ntfs_inode_open(ctx->vol, INODE(ino));
3357 if (ni && (acctype != S_IEXEC)) {
3360 if (ni->mft_no == FILE_root) {
3364 ni, acctype))
3367 dir_ni = ntfs_dir_parent_inode(ni);
3378 ntfs_inode_close(ni);
3379 ni = (ntfs_inode*)NULL;
3383 return (ni);
3466 ntfs_inode *ni;
3476 ni = ntfs_inode_open(ctx->vol, INODE(ino));
3477 if (!ni) {
3482 if (!user_xattrs_allowed(ctx, ni))
3486 if (!ntfs_allowed_access(&security,ni,S_IREAD)) {
3491 actx = ntfs_attr_get_search_ctx(ni, NULL);
3506 ret = ntfs_fuse_listxattr_common(ni, actx, list, size,
3516 if (ntfs_inode_close(ni))
3541 ntfs_inode *ni;
3574 ni = ntfs_check_access_xattr(req, &security, ino,
3576 if (ni) {
3577 if (ntfs_allowed_access(&security,ni,S_IREAD)) {
3579 dir_ni = ntfs_dir_parent_inode(ni);
3583 attr, ni, dir_ni, value, size);
3588 if (ntfs_inode_close(ni))
3597 ni = ntfs_inode_open(ctx->vol, INODE(ino));
3598 if (ni) {
3602 dir_ni = ntfs_dir_parent_inode(ni);
3606 attr, ni, dir_ni, value, size);
3609 if (ntfs_inode_close(ni))
3644 ni = ntfs_inode_open(ctx->vol, INODE(ino));
3645 if (!ni) {
3650 if (!user_xattrs_allowed(ctx, ni)) {
3656 if (!ntfs_allowed_access(&security, ni, S_IREAD)) {
3666 na = ntfs_attr_open(ni, AT_DATA, lename, lename_len);
3694 if (ntfs_inode_close(ni))
3723 ntfs_inode *ni;
3754 ni = ntfs_check_access_xattr(req,&security,ino,attr,TRUE);
3755 if (ni) {
3756 if (ntfs_allowed_as_owner(&security, ni)) {
3758 dir_ni = ntfs_dir_parent_inode(ni);
3762 attr, ni, dir_ni, value, size, flags);
3770 ntfs_fuse_update_times(ni,
3772 if (ntfs_inode_close(ni))
3780 ni = ntfs_check_access_xattr(req, &security,
3783 ni = ntfs_inode_open(ctx->vol, INODE(ino));
3784 if (ni) {
3790 || ntfs_allowed_as_owner(&security, ni)) {
3792 dir_ni = ntfs_dir_parent_inode(ni);
3796 attr, ni, dir_ni, value, size, flags);
3804 ntfs_fuse_update_times(ni,
3806 if (ntfs_inode_close(ni))
3850 ni = ntfs_inode_open(ctx->vol, INODE(ino));
3851 if (!ni) {
3865 if (!ntfs_allowed_as_owner(&security, ni)) {
3872 if (!user_xattrs_allowed(ctx, ni)) {
3876 if (!ntfs_allowed_access(&security,ni,S_IWRITE)) {
3885 && !user_xattrs_allowed(ctx, ni)) {
3897 na = ntfs_attr_open(ni, AT_DATA, lename, lename_len);
3907 if (ntfs_attr_add(ni, AT_DATA, lename, lename_len, NULL, 0)) {
3911 if (!(ni->flags & FILE_ATTR_ARCHIVE)) {
3912 set_archive(ni);
3913 NInoFileNameSetDirty(ni);
3915 na = ntfs_attr_open(ni, AT_DATA, lename, lename_len);
3946 && (ni->flags & FILE_ATTR_ENCRYPTED)) {
3952 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
3953 if (!(ni->flags & FILE_ATTR_ARCHIVE)) {
3954 set_archive(ni);
3955 NInoFileNameSetDirty(ni);
3962 if (ntfs_inode_close(ni))
3973 ntfs_inode *ni;
4000 ni = ntfs_check_access_xattr(req, &security, ino,
4002 if (ni) {
4003 if (ntfs_allowed_as_owner(&security, ni)) {
4005 dir_ni = ntfs_dir_parent_inode(ni);
4009 attr, ni, dir_ni);
4017 ntfs_fuse_update_times(ni,
4019 if (ntfs_inode_close(ni))
4027 ni = ntfs_check_access_xattr(req, &security,
4030 ni = ntfs_inode_open(ctx->vol, INODE(ino));
4031 if (ni) {
4037 || ntfs_allowed_as_owner(&security, ni)) {
4039 dir_ni = ntfs_dir_parent_inode(ni);
4043 attr, ni, dir_ni);
4051 ntfs_fuse_update_times(ni,
4053 if (ntfs_inode_close(ni))
4100 ni = ntfs_inode_open(ctx->vol, INODE(ino));
4101 if (!ni) {
4115 if (!ntfs_allowed_as_owner(&security, ni)) {
4122 if (!user_xattrs_allowed(ctx, ni)) {
4126 if (!ntfs_allowed_access(&security,ni,S_IWRITE)) {
4135 && !user_xattrs_allowed(ctx, ni)) {
4145 if (ntfs_attr_remove(ni, AT_DATA, lename, lename_len)) {
4151 ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
4152 if (!(ni->flags & FILE_ATTR_ARCHIVE)) {
4153 set_archive(ni);
4154 NInoFileNameSetDirty(ni);
4159 if (ntfs_inode_close(ni))