Overview
| Comment: | Updated ownership/group and disabled all caching so that things are consistent (and slow!) | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | trunk | 
| Files: | files | file ages | folders | 
| SHA1: | 6e3b24c68ce55a5d30fea879f4eeef42 | 
| User & Date: | rkeene on 2014-11-10 07:11:10 | 
| Other Links: | manifest | tags | 
Context
| 2014-11-10 | ||
| 07:17 | Updated to not attempt to drop the reference count on the last home directory object until we're about to actually give up the reference check-in: f6ecb0ed91 user: rkeene tags: trunk | |
| 07:11 | Updated ownership/group and disabled all caching so that things are consistent (and slow!) check-in: 6e3b24c68c user: rkeene tags: trunk | |
| 06:47 | Made home directory part user-servicable via config file check-in: dde1c0a38d user: rkeene tags: trunk | |
Changes
Modified appfsd.c from [126129663c] to [7148f823cb].
| ︙ | ︙ | |||
| 734 735 736 737 738 739 740 | memset(stbuf, 0, sizeof(struct stat)); stbuf->st_mtime = pathinfo.time; stbuf->st_ctime = pathinfo.time; stbuf->st_atime = pathinfo.time; stbuf->st_ino = pathinfo.inode; stbuf->st_mode = 0; | < < | 734 735 736 737 738 739 740 741 742 743 744 745 746 747 | 
	memset(stbuf, 0, sizeof(struct stat));
	stbuf->st_mtime = pathinfo.time;
	stbuf->st_ctime = pathinfo.time;
	stbuf->st_atime = pathinfo.time;
	stbuf->st_ino   = pathinfo.inode;
	stbuf->st_mode  = 0;
	switch (pathinfo.type) {
		case APPFS_PATHTYPE_DIRECTORY:
			stbuf->st_mode = S_IFDIR | 0555;
			stbuf->st_nlink = 2 + pathinfo.typeinfo.dir.childcount;
			break;
		case APPFS_PATHTYPE_FILE:
 | 
| ︙ | ︙ | |||
| 774 775 776 777 778 779 780 | 
		case APPFS_PATHTYPE_INVALID:
			retval = -ENOENT;
			break;
	}
	if (pathinfo.packaged) {
 | > > | | 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 | 
		case APPFS_PATHTYPE_INVALID:
			retval = -ENOENT;
			break;
	}
	if (pathinfo.packaged) {
		stbuf->st_uid   = appfs_get_fsuid();
		stbuf->st_gid   = appfs_get_fsgid();
		stbuf->st_mode |= 0200;
	}
	return(retval);
}
static int appfs_fuse_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi) {
	Tcl_Interp *interp;
 | 
| ︙ | ︙ | |||
| 1330 1331 1332 1333 1334 1335 1336 | } Tcl_DeleteInterp(test_interp); /* * Add FUSE arguments which we always supply */ fuse_opt_parse(&args, NULL, NULL, appfs_fuse_opt_cb); | | | 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 | 
	}
	Tcl_DeleteInterp(test_interp);
	/*
	 * Add FUSE arguments which we always supply
	 */
	fuse_opt_parse(&args, NULL, NULL, appfs_fuse_opt_cb);
	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");
	if (getuid() == 0) {
		fuse_opt_parse(&args, NULL, NULL, NULL);
		fuse_opt_add_arg(&args, "-oallow_other");
	}
	/*
 | 
| ︙ | ︙ |