int bb_fgetattr(const char *path, struct stat *statbuf, struct fuse_file_info *fi) { int retstat = 0; log_msg("\nbb_fgetattr(path=\"%s\", statbuf=0x%08x, fi=0x%08x)\n", path, statbuf, fi); log_fi(fi); return bb_getattr(path, statbuf); log_stat(statbuf); return retstat; }
/** * Get attributes from an open file * * This method is called instead of the getattr() method if the * file information is available. * * Currently this is only called after the create() method if that * is implemented (see above). Later it may be called for * invocations of fstat() too. * * Introduced in version 2.5 */ int bb_fgetattr(const char *path, struct stat *statbuf, struct fuse_file_info *fi) { int retstat = 0; // On FreeBSD, trying to do anything with the mountpoint ends up // opening it, and then using the FD for an fgetattr. So in the // special case of a path of "/", I need to do a getattr on the // underlying root directory instead of doing the fgetattr(). if (!strcmp(path, "/")) return bb_getattr(path, statbuf); retstat = fstat(fi->fh, statbuf); return retstat; }
/** * Get attributes from an open file * * This method is called instead of the getattr() method if the * file information is available. * * Currently this is only called after the create() method if that * is implemented (see above). Later it may be called for * invocations of fstat() too. * * Introduced in version 2.5 */ int bb_fgetattr(const char *path, struct stat *statbuf, struct fuse_file_info *fi) { int retstat = 0; log_msg("\nbb_fgetattr(path=\"%s\", statbuf=0x%08x, fi=0x%08x)\n", path, statbuf, fi); log_fi(fi); // On FreeBSD, trying to do anything with the mountpoint ends up // opening it, and then using the FD for an fgetattr. So in the // special case of a path of "/", I need to do a getattr on the // underlying root directory instead of doing the fgetattr(). if (!strcmp(path, "/")) return bb_getattr(path, statbuf); retstat = fstat(fi->fh, statbuf); if (retstat < 0) retstat = log_error("bb_fgetattr fstat"); log_stat(statbuf); return retstat; }