#include "volume.h"
#include "directory.h"
#include "fork.h"
+#include "fce_api.h"
/* we need to have a hashed list of oforks (by dev inode). just hash
* by first letter. */
}
-#ifdef HAVE_RENAMEAT
+#ifdef HAVE_ATFUNCS
int of_fstatat(int dirfd, struct path *path)
{
int ret;
return ret;
}
-#endif /* HAVE_RENAMEAT */
+#endif /* HAVE_ATFUNCS */
/* --------------------------
stat the current directory.
* @param dirfd (r) directory fd
* @param path (rw) pointer to struct path
*/
-#ifdef HAVE_RENAMEAT
+#ifdef HAVE_ATFUNCS
struct ofork *of_findnameat(int dirfd, struct path *path)
{
struct ofork *of;
}
}
}
+
+ /* Somone has used write_fork, we assume file was changed, register it to file change event api */
+ if (ofork->of_flags & AFPFORK_MODIFIED) {
+ fce_register_file_modification(ofork);
+ }
+
ret = 0;
if ( ad_close( ofork->of_ad, adflags ) < 0 ) {
ret = -1;
return;
}
+/* ----------------------
+ close all forks for a volume
+*/
+void of_close_all_forks(void)
+{
+ int refnum;
+
+ if (!oforks)
+ return;
+
+ for ( refnum = 0; refnum < nforks; refnum++ ) {
+ if (oforks[ refnum ] != NULL) {
+ if (of_closefork( oforks[ refnum ]) < 0 ) {
+ LOG(log_error, logtype_afpd, "of_close_all_forks: %s", strerror(errno) );
+ }
+ }
+ }
+ return;
+}
+