#include <atalk/util.h>
#include <atalk/bstrlib.h>
#include <atalk/bstradd.h>
+#include <atalk/fce_api.h>
#include "globals.h"
#include "volume.h"
}
-#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;
+}
+