How to obtain list of buffers as same as current buffer

(defvar major-mode-same-buflist nil)
(defun get-major-mode-list ()
  (interactive)
  (setq major-mode-same-buflist nil)
  (let ((currbuf-major-mode
         (buffer-local-value 'major-mode (current-buffer))))
    (dolist (buffer (buffer-list))
      (if (eq (buffer-local-value 'major-mode buffer) currbuf-major-mode)
          (add-to-list 'major-mode-same-buflist buffer)))))