Diff

Differences From Artifact [126129663c]:

To Artifact [7148f823cb]:


   734    734   	memset(stbuf, 0, sizeof(struct stat));
   735    735   
   736    736   	stbuf->st_mtime = pathinfo.time;
   737    737   	stbuf->st_ctime = pathinfo.time;
   738    738   	stbuf->st_atime = pathinfo.time;
   739    739   	stbuf->st_ino   = pathinfo.inode;
   740    740   	stbuf->st_mode  = 0;
   741         -	stbuf->st_uid   = 0;
   742         -	stbuf->st_gid   = 0;
   743    741   
   744    742   	switch (pathinfo.type) {
   745    743   		case APPFS_PATHTYPE_DIRECTORY:
   746    744   			stbuf->st_mode = S_IFDIR | 0555;
   747    745   			stbuf->st_nlink = 2 + pathinfo.typeinfo.dir.childcount;
   748    746   			break;
   749    747   		case APPFS_PATHTYPE_FILE:
................................................................................
   774    772   		case APPFS_PATHTYPE_INVALID:
   775    773   			retval = -ENOENT;
   776    774   
   777    775   			break;
   778    776   	}
   779    777   
   780    778   	if (pathinfo.packaged) {
   781         -		stbuf->st_mode |= 0222;
          779  +		stbuf->st_uid   = appfs_get_fsuid();
          780  +		stbuf->st_gid   = appfs_get_fsgid();
          781  +		stbuf->st_mode |= 0200;
   782    782   	}
   783    783   
   784    784   	return(retval);
   785    785   }
   786    786   
   787    787   static int appfs_fuse_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi) {
   788    788   	Tcl_Interp *interp;
................................................................................
  1330   1330   	}
  1331   1331   	Tcl_DeleteInterp(test_interp);
  1332   1332   
  1333   1333   	/*
  1334   1334   	 * Add FUSE arguments which we always supply
  1335   1335   	 */
  1336   1336   	fuse_opt_parse(&args, NULL, NULL, appfs_fuse_opt_cb);
  1337         -	fuse_opt_add_arg(&args, "-odefault_permissions,fsname=appfs,subtype=appfsd,use_ino,kernel_cache,entry_timeout=60,attr_timeout=3600,intr,big_writes");
         1337  +	fuse_opt_add_arg(&args, "-odefault_permissions,fsname=appfs,subtype=appfsd,use_ino,kernel_cache,entry_timeout=0,attr_timeout=0,intr,big_writes,hard_remove");
  1338   1338   
  1339   1339   	if (getuid() == 0) {
  1340   1340   		fuse_opt_parse(&args, NULL, NULL, NULL);
  1341   1341   		fuse_opt_add_arg(&args, "-oallow_other");
  1342   1342   	}
  1343   1343   
  1344   1344   	/*