filed

Job queue using FUSE

git clone git://mccd.space/filed

commit eb48a9bef8f67523d79bb32b171968172f35b397
parent 137d4c340bf0c859d1e450ccc0e9dedbb32d0839
Author: Marc Coquand <marc@coquand.email>
Date:   Wed, 17 Dec 2025 12:02:43 +0100

Job

Diffstat:
Mjobdir.go | 9+++++++++
1 file changed, 9 insertions(+), 0 deletions(-)
diff --git a/jobdir.go b/jobdir.go
@@ -73,6 +73,15 @@ func (jd JobDir) ReadDirAll(ctx context.Context) (entries []fuse.Dirent, err err
 
 func (jd JobDir) Remove(ctx context.Context, req *fuse.RemoveRequest) error {
 	slog.Info("Removing job", "id", req.Name)
+	job, err := jd.manager.store.GetJob(req.Name)
+	if err != nil {
+		slog.Error("Could not get job")
+		return syscall.EIO
+	}
+	if job.State == store.StateRunning {
+		// XXX Delete the running job instead
+		return syscall.EPERM
+	}
 	return jd.manager.store.DeleteJob(req.Name)
 }