return NT_STATUS_OBJECT_NAME_NOT_FOUND;
}
+
+
+/*
+ see if a directory is empty
+*/
+BOOL pvfs_directory_empty(struct pvfs_state *pvfs, struct pvfs_filename *name)
+{
+ struct dirent *de;
+ DIR *dir = opendir(name->full_name);
+ if (dir == NULL) {
+ return True;
+ }
+
+ while ((de = readdir(dir))) {
+ if (strcmp(de->d_name, ".") != 0 &&
+ strcmp(de->d_name, "..") != 0) {
+ closedir(dir);
+ return False;
+ }
+ }
+
+ closedir(dir);
+ return True;
+}
}
if (f->handle->name->dos.attrib & FILE_ATTRIBUTE_DIRECTORY) {
+ if (!pvfs_directory_empty(pvfs, f->handle->name)) {
+ return NT_STATUS_DIRECTORY_NOT_EMPTY;
+ }
f->handle->create_options = create_options;
return NT_STATUS_OK;
}