From 9bde727f4f2e5b7cf52211a3a4fe71c7a0e4f1ea Mon Sep 17 00:00:00 2001 From: "Zyad A. Ali" Date: Fri, 30 Jul 2021 22:24:54 +0200 Subject: Implement Registry.Remove. Remove implements the behaviour of mq_unlink(2). Updates #136 --- pkg/sentry/kernel/mq/mq.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'pkg/sentry/kernel') diff --git a/pkg/sentry/kernel/mq/mq.go b/pkg/sentry/kernel/mq/mq.go index c21cc9d47..a7c787081 100644 --- a/pkg/sentry/kernel/mq/mq.go +++ b/pkg/sentry/kernel/mq/mq.go @@ -224,8 +224,22 @@ func (r *Registry) newQueueLocked(creds *auth.Credentials, owner fs.FileOwner, p }, nil } +// Remove removes the queue with the given name from the registry. See +// mq_unlink(2). +func (r *Registry) Remove(ctx context.Context, name string) error { + if len(name) > MaxName { + return linuxerr.ENAMETOOLONG + } + + r.mu.Lock() + defer r.mu.Unlock() + return r.impl.Unlink(ctx, name) +} + // Destroy destroys the registry and releases all held references. func (r *Registry) Destroy(ctx context.Context) { + r.mu.Lock() + defer r.mu.Unlock() r.impl.Destroy(ctx) } -- cgit v1.2.3