relay: require non-NULL callbacks in relay_open()
[sfrench/cifs-2.6.git] / kernel / relay.c
index b51343642bf44c542606947f1a61c5a60ab22cd1..d9b8185161a89ce7316cc3f8f2f7c7258133385c 100644 (file)
@@ -291,13 +291,6 @@ static int remove_buf_file_default_callback(struct dentry *dentry)
        return -EINVAL;
 }
 
-/* relay channel default callbacks */
-static struct rchan_callbacks default_channel_callbacks = {
-       .subbuf_start = subbuf_start_default_callback,
-       .create_buf_file = create_buf_file_default_callback,
-       .remove_buf_file = remove_buf_file_default_callback,
-};
-
 /**
  *     wakeup_readers - wake up readers waiting on a channel
  *     @work: contains the channel buffer
@@ -472,11 +465,6 @@ static void relay_close_buf(struct rchan_buf *buf)
 static void setup_callbacks(struct rchan *chan,
                                   struct rchan_callbacks *cb)
 {
-       if (!cb) {
-               chan->cb = &default_channel_callbacks;
-               return;
-       }
-
        if (!cb->subbuf_start)
                cb->subbuf_start = subbuf_start_default_callback;
        if (!cb->create_buf_file)
@@ -542,6 +530,8 @@ struct rchan *relay_open(const char *base_filename,
                return NULL;
        if (subbuf_size > UINT_MAX / n_subbufs)
                return NULL;
+       if (!cb)
+               return NULL;
 
        chan = kzalloc(sizeof(struct rchan), GFP_KERNEL);
        if (!chan)